スーパーバイザーから未使用のパーシステント ボリューム要求 (PVC) を使用して、TKG サービス クラスタ内にブロック ボリュームを静的に作成することができます。
PVC は次の条件を満たす必要があります。
- PVC は TKG クラスタが配置されている名前空間内に存在します。
- PVC は、TKG クラスタ内のポッドやスーパーバイザー内の vSphere ポッド にまだ接続されていません。
静的プロビジョニングを使用すると、別の TKG クラスタで不要になった PVC を新しい TKG クラスタで再利用することもできます。再利用するには、元の TKG クラスタ内のパーシステント ボリューム (PV) の Reclaim policy
を Retain
に変更して、対応する PV を削除します。
次の手順に従って、残りの基盤となるボリュームの情報を使用して新しい TKG クラスタ内に PVC を静的に作成します。
手順
- スーパーバイザー 内の元の PVC の名前を書き留めます。
古い TKG クラスタの PVC を再利用する場合は、TKG クラスタ内の古い PV オブジェクトの
volumeHandle から PVC 名を取得できます。
- PV を作成します。
YAML ファイルで、次のアイテムの値を指定します。
- storageClassName には、スーパーバイザー で PVC が使用しているストレージ クラスの名前を入力できます。
- volumeHandle には、取得した PVC 名を入力します。
別の TKG クラスタのボリュームを再利用する場合は、新しい TKG クラスタで PV を作成する前に、古い TKG クラスタから PVC と PV オブジェクトを削除します。
例として、次の YAML マニフェストを使用します。
apiVersion: v1
kind: PersistentVolume
metadata:
name: static-tkg-block-pv
annotations:
pv.kubernetes.io/provisioned-by: csi.vsphere.vmware.com
spec:
storageClassName: gc-storage-profile
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
claimRef:
namespace: default
name: static-tkg-block-pvc
csi:
driver: "csi.vsphere.vmware.com"
volumeAttributes:
type: "vSphere CNS Block Volume"
volumeHandle: "supervisor-block-pvc-name" # Enter the PVC name from the Supervisor.
- 作成した PV オブジェクトと一致する PVC を作成します。
storageClassName を PV と同じ値に設定します。
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: static-tkg-block-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
storageClassName: gc-storage-profile
volumeName: static-tkg-block-pv
- 作成した PV に PVC がバインドされていることを確認します。
$ kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/static-tkg-block-pv 2Gi RWO Delete Bound default/static-tkg-block-pvc gc-storage-profile 10s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/static-tkg-block-pvc Bound static-tkg-block-pv 2Gi RWO gc-storage-profile 10s