共用方式為


Azure Kubernetes Service (AKS) 上的容器儲存體介面 (CSI) 驅動程式 (部分機器翻譯)

容器儲存體介面 (CSI) 是一種標準,可對 Kubernetes 上的容器化工作負載公開任意區塊及檔案儲存體系統。 透過採用和使用 CSI,Azure Kubernetes Service (AKS) 可以寫入、部署和逐一查看外掛程式,以在 Kubernetes 中公開新的或改進現有儲存體系統,而無需接觸核心 Kubernetes 程式碼並等待其發行週期。

AKS 上的 CSI 儲存體驅動程式支援允許您以原生方式使用:

  • Azure 磁碟可用來建立 Kubernetes DataDisk 資源。 Azure 磁碟可以使用採用高效能 SSD 的 Azure 進階儲存體,或是採用一般 HDD 或標準 HDD 的 Azure 標準儲存體。 針對大多數的生產和開發工作負載,請使用進階儲存體。 Azure 磁碟裝載為 ReadWriteOnce,並且僅可用於 AKS 中的一個節點。 如需可同時由多個節點存取的儲存體磁碟區,請使用 Azure 檔案儲存體。
  • Azure 檔案可用來將 Azure 儲存體帳戶所支援的 SMB 3.0/3.1 共用掛接至 Pod。 藉由 Azure 檔案儲存體,您可以在多個節點和 Pod 之間共用資料。 Azure 檔案儲存體可以使用一般 HDD 支援的 Azure 標準儲存體,或是由高效能 SSD 支援的 Azure 進階儲存體。
  • Azure Blob 儲存體可用於將 Blob 儲存體 (或物件儲存體) 當作檔案系統掛接至容器或 Pod。 使用 Blob 儲存體使您的叢集能够支援使用大型非結構化資料集 (如記錄檔資料、映像或文件、HPC 等) 的應用程式。 此外,如果您將資料擷取至 Azure Data Lake 儲存體,則可在 AKS 中直接掛接和使用資料,而不需設定另一個過渡檔案系統。

提示

如果您想要完全受控的解決方案來存取數據區塊層級,請考慮使用 Azure Container Storage 而非 CSI 驅動程式。 Azure Container Storage 與 Kubernetes 整合,允許動態和自動布建永續性磁碟區。 Azure Container Storage 支援 Azure 磁碟、暫時磁碟和 Azure 彈性 SAN(預覽版)作為備份記憶體,為 Kubernetes 叢集上執行的具狀態應用程式提供彈性和延展性。

必要條件

  • 您必須安裝並設定 Azure CLI 2.42 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI
  • 如果已在您的叢集上安裝開放原始碼 CSI 儲存體驅動程式,請先將其解除安裝,再啟用 Azure 儲存體 CSI 驅動程式。
  • 若要強制執行適用於 AKS 原則定義的 Azure 原則,Kube 叢集應該使用容器儲存體介面 (CSI) 驅動程式 StorageClass,必須在新的和現有的叢集上啟用 Azure 原則附加元件。 針對現有的叢集,請檢閱了解適用於 Kube 的 Azure 原則加以啟用。

磁碟加密支援的案例

CSI 儲存體驅動程式支援下列案例:

啟用現有叢集上的 CSI 儲存體驅動程式

若要停用新叢集上的 CSI 儲存體驅動程式,請根據儲存體系統包括下列其中一個參數:

az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

完成此動作可能需要幾分鐘的時間。 完成後,您應該會在輸出中看到在叢集上啟用驅動程式的狀態。 下列範例類似於啟用 Blob 儲存體 CSI 驅動程式時指出結果的區段:

"storageProfile": {
    "blobCsiDriver": {
      "enabled": true
    },

停用新的或現有叢集上的 CSI 儲存體驅動程式

若要停用新叢集上的 CSI 儲存體驅動程式,請根據儲存體系統包括下列其中一個參數:

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller \
    --generate-ssh-keys

若要停用現有叢集上的 CSI 儲存體驅動程式,請根據儲存體系統使用稍早列出的其中一個參數:

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller 

注意

建議您刪除對應的PersistentVolumeClaim物件,而不是刪除CSI磁碟區時的PersistentVolume物件。 CSI 驅動程式中的外部佈建器會回應刪除 PersistentVolumeClaim,並根據其回收原則,對 CSI 磁碟區驅動程式命令發出 DeleteVolume 呼叫,以刪除磁碟區。 接著會刪除 PersistentVolume 物件。

將自訂樹狀結構內儲存類別移轉至 CSI

從 Kube 1.26 版開始,樹狀內永續性磁碟區類型 kubernetes.io/azure-diskkubernetes.io/azure-file 已淘汰,不再受到支援。 樹狀結構驅動程式為屬於核心 Kube 程式碼一部分的儲存體驅動程式,以及屬於外掛程式的 CSI 驅動程式。

未規劃在淘汰之後移除這些驅動程式,不過您應該移轉至對應的 CSI 驅動程式 disk.csi.azure.comfile.csi.azure.com。 若要檢閱儲存體類別的移轉選項,並將叢集升級為使用 Azure 磁碟和 Azure 檔案 CSI 驅動程式,請參閱從樹狀內移轉至 CSI 驅動程式

如果您已建立樹狀結構驅動程式儲存體類別,這些儲存體類別會繼續運作,因為將叢集升級至 1.21.x 之後,CSI 移轉會開啟。 如果您想要使用 CSI 功能,您必須執行移轉。

下一步