私はKubernetesでMySQLデプロイメントを実行していますが、割り当てられたスペースが十分ではないようです。最初に50GB
の永続的なボリュームを追加し、それを100GB
に拡張したいと思います。
永続ボリュームの主張が作成後に不変であることをすでに見ましたが、どういうわけか永続ボリュームのサイズを変更してから主張を再作成できますか?
はい、1.11の時点で 永続的なボリュームはサイズ変更可能 特定のクラウドプロバイダーで。ボリュームサイズを増やすには:
kubectl edit pvc $your_pvc
を使用してPVC
サイズを編集しますボリュームを使用するポッドが終了すると、ファイルシステムが拡張され、PV
のサイズが増加します。詳細については、上記のリンクを参照してください。
Kubernetes 1.9(1.8のアルファ版)では、一部のボリュームタイプが可能です:gcePersistentDisk、awsElasticBlockStore、Cinder、glusterfs、rbd
PersistentVolumeClaimResize
フィールドがtrueに設定されているallowVolumeExpansion
入場プラグインとストレージクラスを有効にする必要があります。
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims の公式ドキュメントを参照してください
いいえ、Kubernetesはまだ自動ボリュームサイズ変更をサポートしていません。
ディスクのサイズ変更は、現時点では完全に手動のプロセスです。
所定の容量でKubernetes PVオブジェクトを作成し、PVをPVCにバインドし、ポッドで使用するためにノードに接続/マウントすると仮定します。ボリュームサイズを大きくすると、ポッドは引き続き問題なくディスクを使用できますが、追加のスペースにアクセスできなくなります。
ボリュームの追加スペースを有効にするには、パーティションのサイズを手動で変更する必要があります。それは here の指示に従って行うことができます。ボリュームを参照しているポッドを最初に削除し、デタッチするのを待ってから、ボリュームを手動でアタッチ/マウントしてからVMアクセス権のあるインスタンスに移動し、必要な手順を実行する必要がありますサイズを変更します。
機能リクエストを追跡するための未解決の問題 #35941 .
特定の実験的機能がクラスターで有効になっている場合、1.8以上の場合、gcePersistentDisk
やawsBlockStore
を含む一部のボリュームタイプで サポート があります。
他のボリュームタイプの場合は、今のところ手動で行う必要があります。さらに、ポッドがオンラインのときにこれを自動的に実行するサポート(ニース!)が近づいています 将来のバージョン(現在1.11で予定) :
今のところ、これらは永続ディスクのサイズ変更を現在サポートしていないAzureDisk
ボリュームタイプ(管理対象ディスクの場合)でこれを手動で行うための手順です(ただし、 これもサポートされています =):
Bound
のままですが、KubernetesはPVを解放する必要があります。 Prometheusなど、オペレーターによって管理されるステートフルセットには特に注意してください。オペレーターは一時的に無効にする必要がある場合があります。 Scale
を使用して、一度に1つのポッドを実行することもできます。これには数分かかる場合があります。しばらくお待ちください。e2fsck
およびresize2fs
は、PV上のファイルシステムのサイズを変更します(ext3/4 FSを想定)ディスクをアンマウントします。Released
に変わるはずです。Available
:になります。spec.capacity.storage
で新しいボリュームサイズを指定します。spec.claimref
uid
およびresourceVersion
フィールドを削除し、status.phase
を削除します。metadata.resourceVersion
フィールドを削除し、pv.kubernetes.io/bind-completed
およびpv.kubernetes.io/bound-by-controller
注釈を削除し、spec.resources.requests.storage
フィールドを更新されたPVサイズに変更します。status
内のすべてのフィールドを削除します。Pending
状態で開始する必要がありますが、PVとPVCの両方はBound
に比較的迅速に移行する必要があります。PVC/PVの「サイズ変更」に関しては、k8ではまだサポートされていませんが、1.9で届く可能性があると思います
PVC/PVと(例)GCE PD= ..を処理することにより、同じ最終結果を達成することが可能です。
たとえば、PVCとStorageClassリソースを介して動的にプロビジョニングされたPVを備えたgitlab展開がありました。ここに私が実行した手順があります:
kubectl describe pv <name-of-pv>
(後でPVマニフェストを作成するときに役立ちます)"gcePersistentDisk: pdName: <name-of-pd>"
を定義し、ステップ3で取得した他の詳細とともに、PVに必要な新しい容量にspec.capacity.storageを更新することを確認します(必須ではなく、ここでは効果はありませんが、後世のためにPVCマニフェストのストレージ容量/値を更新することをお勧めします)kubectl apply
(または同等のもの)を使用して展開/ポッド、PVC、およびPVを再作成します。注:既存のデプロイメント/ポッドの一部を削除するなど、一部の手順は必須ではない場合があります。個人的には削除することを好みますが、ReclaimPolicyが保持されていることを確認し、スナップショットを持っています。