請先熟悉 vSphere 雲端原生儲存區 環境的數個基本概念。

雲端原生儲存環境的元件。

Kubernetes 叢集
雲端原生儲存區 環境中,您可以在虛擬機器的叢集中部署一般 Kubernetes 叢集。您可以在 Kubernetes 叢集上方部署您的容器化應用程式。應用程式可以是可設定狀態,也可以是無狀態。
備註: 如需可在 vSphere with Tanzu 中執行的主管叢集和 TKG 叢集的相關資訊,請參閱 vSphere with Tanzu 組態和管理說明文件。
網繭
網繭為共用這類資源做為儲存區和網路的一或多個容器化應用程式的群組。網繭內的 Container 會啟動、停止,以及以群組形式複寫。
Container Orchestrator
開放原始碼平台 (例如 Kubernetes),用於在主機的叢集間容器化應用程式的部署、擴充和管理。此類平台提供以 Container 為中心的基礎結構。
可設定狀態應用程式
由於容器化應用程式會從無狀態發展為可設定狀態,因此它們需要持續性儲存區。可設定狀態應用程式與不會在工作階段之間儲存資料的無狀態應用程式不同,前者會將資料儲存至持續性儲存區。保留的資料稱為應用程式的狀態。您之後可以擷取該資料,並在下一個工作階段中使用資料。大部分應用程式為可設定狀態。資料庫即為可設定狀態應用程式的範例。
PersistentVolume
可設定狀態應用程式使用 PersistentVolume 來儲存其資料。PersistentVolume 為一種 Kubernetes 磁碟區,能夠保留其狀態和資料。它獨立於網繭之外,即使在網繭已刪除或重新設定的情況下,也能繼續存在。在 vSphere 環境中,PersistentVolume 物件使用第一級磁碟 (FCD) 類型的 vSphere 虛擬磁碟或 vSAN 檔案共用作為其支援儲存區。第一級磁碟也稱為已改進虛擬磁碟 (IVD) 或受管理的虛擬磁碟。
  • 虛擬磁碟可支援裝載為 ReadWriteOnce 的磁碟區。這些磁碟區只能由 Kubernetes 中的單一網繭使用。

    從 vSphere 7.0 開始,您可以使用 vSphere 加密技術來保護可支援持續性磁碟區的 FCD 虛擬磁碟。如需詳細資訊,請參閱 對雲端原生儲存使用加密

  • vSAN 檔案共用支援多個節點掛接的 ReadWriteMany 磁碟區。這些磁碟區可在跨 Kubernetes 節點或跨 Kubernetes 叢集執行的多個網繭或應用程式之間共用。如需可能的檔案共用組態的相關資訊,請參閱使用 vSAN 檔案服務佈建檔案磁碟區
StorageClass
Kubernetes 使用 StorageClass 來定義不同的儲存區層級,並說明用於支援 PersistentVolume 的儲存區的不同類型需求。在 vSphere 環境中,您可以將儲存區類別連結至儲存區原則。身為 vSphere 管理員,您可以建立說明不同儲存區需求的儲存區原則。虛擬機器儲存區原則可用作動態磁碟區佈建的 StorageClass 定義的一部分。

下列範例 YAML 檔案參考您稍早使用 vSphere Client 建立的金級儲存區原則。產生的持續性磁碟區 VMDK 會放置於可滿足金級儲存區原則需求的相容資料存放區上。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gold-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: csi.vsphere.vmware.com
parameters:
  storagepolicyname: "Gold"
  
PersistentVolumeClaim
一般來說,應用程式或網繭可透過 PersistentVolumeClaim 要求持續性儲存區。PersistentVolumeClaim 會指定儲存區的類型和類別、存取模式 (ReadWriteOnce 或 ReadWriteMany),以及 PersistentVolume 的其他參數。然後,此請求可在 vSphere 環境中動態佈建對應的 PersistentVolume 物件以及基礎虛擬磁碟或 vSAN 檔案共用。
一旦建立宣告,PersistentVolume 即會自動繫結至宣告。網繭會使用該宣告來掛接 PersistentVolume 和存取儲存區。
刪除此宣告時,會刪除對應的 PersistentVolume 物件和基礎儲存區。
kind: PersistentVolumeClaim
metadata:
 name: persistent-VMDK
spec:
 accessModes:
 - ReadWriteOnce
 resources:
 requests:
 storage: 5Gi
 storageClassName: gold-sc