ビジネスデータやアプリケーションデータが大きくなると、ディスク容量が不足することがあります。 この問題を解決するには、ディスクを拡張します。 動的にプロビジョニングされたディスクボリュームはオンライン拡張をサポートしています。これにより、ポッドを中断することなくディスク容量を増やし、ビジネスオペレーションの継続性を確保できます。
制限事項
Container Service for Kubernetes (ACK) サーバーレスクラスターでは、ディスクボリュームの拡張に次の制限が適用されます。
インラインタイプのディスクボリュームは拡張できません。つまり、永続ボリュームクレーム (PVC) を使用せずに作成されたディスクボリュームはサポートされません。
PVCsを使用して作成されたディスクボリュームの場合、StorageClassesにバインドされたPVCsを使用してマウントされた動的にプロビジョニングされた永続ボリューム (PVs) のみを拡張できます。
ディスクカテゴリの現在の容量範囲内でのみ拡張できます。 ディスクのディスクカテゴリは変更できません。
基本ディスクに関連付けられているボリュームは拡張できません。
準備
Container Storage Interface (CSI) プラグインがクラスターにインストールされ、最新バージョンにアップグレードされます。 詳細については、「csi-provisionerのインストールとアップグレード」をご参照ください。
クラウドディスクがマウントされているポッドのステータスを確認して、ポッドが [実行中] 状態であることを確認します。
使用するStorageClassのYAMLファイルをチェックして、
allowVolumeExpansionがtrueに設定されていることを確認します。説明デフォルトでは、StorageClassの
allowVolumeExpansionパラメーターはtrueに設定されています。 StorageClassの作成時にこのパラメーターを設定しなかった場合、システムは自動的にallowVolumeExpansion: trueを設定します。(オプション) クラウドディスクスナップショットを作成します。 詳細については「スナップショットの作成」をご参照ください。
重要ディスクボリュームを拡張する前に、ディスクボリュームの拡張中にデータ損失が発生した場合に備えて、ディスクのスナップショットを作成することをお勧めします。 拡張が完了したら、スナップショットを手動で削除して、不要なスナップショットコストを回避する必要があります。
オンラインディスク拡張を有効にする
デフォルトでは、ACKサーバーレスクラスターはディスク拡張をサポートしていません。 オンラインディスク拡張機能を有効にするには、eci-profileを変更し、enablePVCControllerパラメーターをtrueに設定します。
kubectlを使う
クラスターに接続します。 詳細については、「kubectlを使用したACKクラスターへの接続」をご参照ください。
次のコマンドを実行して、eci-profileを編集します。
kubectl edit configmap eci-profile -n kube-systemenablePVCControllerパラメーターの値をtrueに設定し、ファイルを保存します。
コンソールを使用する
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[名前空間] ドロップダウンリストから [kube-system] を選択します。
eci-profileを見つけて、[編集] をクリックします。
enablePVCControllerパラメーターをtrueに設定し、[OK] をクリックします。
オンラインでディスクを展開します
アプリケーションが動的にプロビジョニングされたディスクボリュームにマウントされている場合、次の手順に従って、ポッドを中断することなくディスクを拡張できます。
クラスターに接続します。 詳細については、「kubectlを使用したACKクラスターへの接続」をご参照ください。
アプリケーションが実行されているディスクのマウント状態を確認します。
次のサンプルコマンドでは、マウントパスが
/dataであるtest-0という名前のポッドを使用します。kubectl exec test-0 -- df /dataサンプル出力:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 25626852 24 25610444 1% /dataPVCを見る:
kubectl get pvc次のサンプル出力では、PVC名は
test-pvc、PVCにバインドされたクラウドディスクIDはd-uf68pljc3sppvhss ****、容量は25 GiBです。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE test-pvc Bound d-uf68pljc3sppvhss**** 25Gi RWO test-sc <unset> 7m38sPVC情報を変更してディスクを拡張します。
次のサンプルコマンドは、
test-PVCという名前のpvcを30 GiBに拡張します。kubectl patch pvc test-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'しばらく待ってから、拡張が完了したかどうかを確認します。
PVCを見る:
kubectl get pvc次のサンプル出力では、ID
d-uf68pljc3sppvhss ****のクラウドディスクが30 GiBに拡張されています。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE test-pvc Bound d-uf68pljc3sppvhss**** 30Gi RWO test-sc <unset> 18mクラウドディスクのマウントステータスを確認します。
kubectl exec test-0 -- df /data次のサンプル出力は、拡張が成功したことを示しています。
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30787492 24 30771084 1% /data