Eine einem vSphere-Namespace zugewiesene vSphere-Speicherrichtlinie liefert zwei Editionen einer Speicherklasse, die für die Verwendung mit dauerhaften Volumes verfügbar ist. Welche Edition Sie auswählen, richtet sich nach Ihren Anforderungen.
Zwei Editionen einer für die Verwendung verfügbaren Speicherklasse
Wenn Sie einem vSphere-Namespace eine vSphere-Speicherrichtlinie zuweisen, erstellt das System eine übereinstimmende Kubernetes-Speicherklasse in diesem vSphere-Namespace. Diese Speicherklasse wird auf jeden in diesem Namespace bereitgestellten TKG-Cluster repliziert. Die Speicherklasse ist dann verfügbar, um dauerhafte Speichervolumes für Cluster-Arbeitslasten zu erstellen.
kubectl describe storageclass tkg-storage-policy Name: tkg-storage-policy IsDefaultClass: No Annotations: cns.vmware.com/StoragePoolTypeHint=cns.vmware.com/vsan Provisioner: csi.vsphere.vmware.com Parameters: storagePolicyID=877b0f4b-b959-492a-b265-b4d460987b23 AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: Immediate Events: <none>
*-latebinding
als Anhang zum Namen und „WaitForFirstConsumer“ als Bindungsmodus.
kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE tkg-storage-policy csi.vsphere.vmware.com Delete Immediate true 2m43s tkg-storage-policy-latebinding csi.vsphere.vmware.com Delete WaitForFirstConsumer true 2m43s
latebinding
-Edition der Speicherklasse, wenn Sie ein dauerhaftes Volume bereitstellen möchten, nachdem die Berechnung vom Kubernetes-Scheduler ausgewählt wurde. Weitere Informationen finden Sie unter
Bindungsmodus in der Kubernetes-Dokumentation.
kubectl describe sc tkg-storage-policy Name: tkg-storage-policy IsDefaultClass: No Annotations: <none> Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=tkg-storage-policy AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: Immediate Events: <none> kubectl describe sc tkg-storage-policy-latebinding Name: tkg-storage-policy-latebinding IsDefaultClass: No Annotations: <none> Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=tkg-storage-policy AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
Patchen einer Speicherklasse
Für TKG auf Supervisor können Sie eine Speicherklasse nicht manuell mithilfe von kubectl und YAML erstellen. Sie können eine Speicherklasse nur mithilfe des vSphere-Speicherrichtlinien-Frameworks erstellen und dann auf einen vSphere-Namespace anwenden. Das Ergebnis sind zwei entsprechende Speicherklassen auf jedem in diesem vSphere-Namespace bereitgestellten TKG-Cluster.
Auch wenn Sie eine Speicherklasse nicht manuell mithilfe von kubectl und YAML erstellen können, haben Sie die Möglichkeit, eine vorhandene Speicherklasse mithilfe von kubectl zu ändern. Dies kann erforderlich sein, wenn Sie einen TKG-Cluster ohne Angabe einer Standardspeicherklasse bereitgestellt haben und jetzt eine Anwendung mithilfe von Helm oder eines Tanzu-Pakets bereitstellen möchten, das eine Standardspeicherklasse erfordert.
Anstatt von Grund auf einen neuen Cluster mit Standardspeicher zu erstellen, können Sie die vorhandene Speicherklasse patchen und die Anmerkung „default = true“ hinzufügen, wie in der Kubernetes-Dokumentation unter Change the default StorageClass (Ändern der Standard-StorageClass) beschrieben.
kubectl describe sc Name: gc-storage-profile IsDefaultClass: No Annotations: <none> Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=gc-storage-profile AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: Immediate Events: <none> Name: gc-storage-profile-latebinding IsDefaultClass: No Annotations: <none> Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=gc-storage-profile AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
kubectl patch storageclass gc-storage-profile -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' storageclass.storage.k8s.io/gc-storage-profile patched
kubectl describe sc Name: gc-storage-profile IsDefaultClass: Yes Annotations: storageclass.kubernetes.io/is-default-class=true Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=gc-storage-profile AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: Immediate Events: <none> Name: gc-storage-profile-latebinding IsDefaultClass: No Annotations: <none> Provisioner: csi.vsphere.vmware.com Parameters: svStorageClass=gc-storage-profile AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>