ビジネスの成長やアプリケーションデータの増加に伴い、ご利用のクラウドディスクストレージ容量が不足する場合があります。この問題に対処するため、クラウドディスクをスケールアウトできます。動的プロビジョニングされたクラウドディスク永続ボリュームはオンライン・スケールアウトをサポートしており、Pod を停止することなくストレージ容量を拡張し、ビジネス運用を中断することなく継続できます。
制限事項
ACK サーバーレスクラスターでは、クラウドディスク永続ボリュームのスケールアウトには次の制限事項があります。
-
InlineVolume タイプのクラウドディスク永続ボリュームはスケールアウトしないでください。これは、Persistent Volume Claim (PVC) を使用せずにアタッチされたクラウドディスク永続ボリュームはスケールアウトできないことを意味します。
-
PVC を使用してアタッチされたクラウドディスク永続ボリュームの場合、動的プロビジョニングされたボリュームのみをスケールアウトしてください。これは、PVC にバインドされている Persistent Volume (PV) が StorageClass に関連付けられている必要があることを意味します。
-
スケールアウト時には、現在のクラウドディスクタイプの容量範囲内でのみ拡張してください。クラウドディスクタイプを変更しないでください。
-
クラウドディスクタイプが基本ディスクの場合、スケールアウトしないでください。
事前準備
-
クラスターに Container Storage Interface (CSI) ストレージコンポーネントがインストールされ、最新バージョンにアップグレードされていることを確認します。詳細については、「csi-provisioner コンポーネントのインストールとアップグレード」をご参照ください。
-
クラウドディスクがアタッチされている Pod のステータスを確認します。Pod が Running 状態であることを確認してください。
-
使用中の StorageClass の YAML を表示します。
allowVolumeExpansionが `true` に設定されていることを確認してください。説明StorageClass の
allowVolumeExpansion設定項目は、デフォルトで `true` です。allowVolumeExpansionを設定せずに StorageClass を作成した場合、システムは自動的にallowVolumeExpansion: trueを設定します。 -
(オプション) クラウドディスクスナップショットを作成します。詳細については、「単一スナップショットの手動作成」をご参照ください。
重要クラウドディスクのスケールアウト中に予期せぬ問題によるデータ損失を防ぐため、クラウドディスクスナップショットを作成してデータをバックアップしてください。スケールアウト完了後、継続的なスナップショット料金を回避するために、スナップショットを手動で削除してください。
クラウドディスクのオンライン・スケールアウトを有効化
デフォルトでは、ACK サーバーレスクラスターはクラウドディスクのスケールアウトをサポートしていません。eci-profile を変更して enablePVCController を `true` に設定すると、クラウドディスクのオンライン・スケールアウトを有効化できます。
kubectl コマンドラインの使用
-
クラスターに接続します。詳細については、「クラスター KubeConfig の取得と kubectl を使用したクラスターへの接続」をご参照ください。
-
次のコマンドを実行して eci-profile を編集します。
kubectl edit configmap eci-profile -n kube-system -
enablePVCControllerの値を `true` に変更して保存します。
コンソールの使用
コンテナサービス管理コンソール にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、お使いのクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 をクリックします。
-
[kube-system] 名前空間を選択します。
-
`eci-profile` を見つけて、編集 をクリックします。
-
enablePVCControllerの値を `true` に変更し、その後 OK をクリックします。
クラウドディスクのオンライン・スケールアウト
アプリケーションに動的プロビジョニングされたクラウドディスク永続ボリュームがアタッチされている場合、Pod を一時停止することなく、次の手順でクラウドディスクをスケールアウトできます。
-
クラスターに接続します。詳細については、「クラスター KubeConfig の取得と kubectl を使用したクラスターへの接続」をご参照ください。
-
アプリケーション内のクラウドディスクのアタッチ状態を確認します。
Pod 名が `test-0`、マウントパスが `/data` であると仮定します。コマンド例は次のとおりです。
kubectl exec test-0 -- df /data次の例は出力結果を示しています。
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 25626852 24 25610444 1% /data -
PVC を表示します。
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> 7m38s -
クラウドディスク容量をスケールアウトするために、PVC 情報を変更します。
PVC 名が `test-pvc` で、クラウドディスク容量を 30 GiB にスケールアウトする必要があると仮定します。コマンド例は次のとおりです。
kubectl patch pvc test-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}' -
しばらくすると、クラウドディスクのスケールアウトが成功したかどうかを確認します。
-
PVC を表示します。
kubectl get pvc次の例は出力結果を示しています。クラウドディスク `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
-