Container Service for Kubernetes (ACK) を使用すると、Container Storage Interface (CSI) プラグインを使用して、Kubernetes 1.16以降を実行するクラスターのサービスを中断することなくディスクボリュームを拡張できます。 このトピックでは、サービスを中断せずにディスクボリュームを拡張する方法について説明します。
使用上の注意
データバックアップ
ディスクボリュームを拡張する前に、ディスクボリュームの拡張中にデータの問題が発生した場合に備えて、ディスクのスナップショットを作成します。
シナリオ
動的にプロビジョニングされた永続ボリューム (PV) のみを拡張でき、サービスを中断することなく、StorageClassNameパラメーターを含む永続ボリュームクレーム (PVC) を使用してマウントされます。
インラインタイプのディスクボリュームは拡張できません。 このタイプのディスクボリュームは、PVおよびPVCを使用して作成されません。
基本ディスクに関連付けられているボリュームは、サービスを中断せずに拡張できません。
StorageClassにAllowVolumeExpansion: Trueを指定します。 AllowVolumeExpansionパラメーターは、ACKによって作成されたStorageClassesに対して自動的にTrueに設定されます。 手動で作成されるStorageClassesの場合、AllowVolumeExpansionパラメーターをTrueに手動で設定する必要があります。
ボリューム拡張中、ポッドは実行中の状態のままでなければなりません。
プラグインのバージョン
CSIプラグインが最新バージョンに更新されていることを確認します。
クラスタのリソースアクセス管理 (RAM) ロールにResizeDisk権限を付与する
サービスを中断せずにディスクボリュームを拡張する前に、クラスターのRAMロールにResizeDisk権限を付与する必要があります。 次の手順を実行して、クラスタタイプと使用するボリュームプラグインに基づいてResizeDisk権限を付与します。
CSIプラグインを使用するACK専用クラスター
ACKコンソールにログインします。
左側のナビゲーションウィンドウで、クラスター.
クラスターページで管理したいクラスターのアクション列にある詳細をクリックしてください。
左側のナビゲーションウィンドウで、クラスター情報をクリックします。
クラスターリソースタブをクリックし、マスターRAMロール隣のハイパーリンクをクリックします。.
RAMコンソールで、RAMロールにResizeDisk権限を付与します。 権限を付与する方法の詳細については、「カスタムポリシーのドキュメントと説明の変更」をご参照ください。
FlexVolumeまたはACK管理クラスターを使用するACK専用クラスター
上記の手順1〜手順4を実行し、マスターRAMロールの横にあるハイパーリンクをクリックします。
アプリケーションポッドを起動せずにディスクボリュームを拡張する
コマンドラインツールを使用してACKクラスターに接続します。 詳細については、「手順2: クラスター資格情報の種類の選択」をご参照ください。
この例では、管理するポッドは次の状態です。
次のコマンドを実行してポッド情報を照会します。
kubectl get pod
期待される出力:
<YOUR-POD-NAME> 1/1 Running 0 42s
次のコマンドを実行して、ポッドにマウントされているボリュームを照会します。
kubectl exec <YOUR-POD-NAME> -- df /data
期待される出力:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 20511312 45080 20449848 1% /data
次のコマンドを実行して、PVC情報を照会します。
kubectl get pvc
期待される出力:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <your-PVC-name> Bound d-wz9hpoifm43yn9zi**** 20Gi RWO alicloud-disk-topology-alltype 57s
次のコマンドを実行して、PV情報を照会します。
kubectl get pv
期待される出力:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE d-wz9hpoifm43yn9zi**** 20Gi RWO Delete Bound default/<your-PVC-name> alicloud-disk-topology-alltype 65s
次のコマンドを実行して、[使用状況] セクションの要件を満たしたときにディスクボリュームを拡張します。
kubectl patch pvc <your-PVC-name> -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
1分待ってから、PVが拡張されているかどうかを確認します。
次のコマンドを実行して、PV情報を照会します。
kubectl get pv d-wz9hpoifm43yn9zi****
期待される出力:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE d-wz9hpoifm43yn9zi**** 30Gi RWO Delete Bound default/<your-PVC-name> alicloud-disk-topology-alltype 5m23s
次のコマンドを実行して、PVC情報を照会します。
kubectl get pvc
期待される出力:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <your-PVC-name> Bound d-wz9hpoifm43yn9zi**** 30Gi RWO alicloud-disk-topology-alltype 5m10s
次のコマンドを実行して、ポッドにマウントされているボリュームを照会します。
kubectl exec <YOUR-POD-NAME> -- df /data
期待される出力:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30832548 45036 30771128 1% /data
サービスを中断せずにディスクボリュームを拡張するには、上記のコマンドを実行するだけです。
関連ドキュメント
ディスクボリュームの使用率が指定したしきい値を超えたときにディスクボリュームを自動的に拡張する方法については、「ディスクボリュームを自動的に拡張する (パブリックプレビュー) 」をご参照ください。