儲存空間總覽
您可以使用 Kubernetes 物件,為在 Azure 上的 GKE 執行的工作負載建立永久儲存空間。
控制層儲存空間
建立叢集時,Azure 上的 GKE 會為控制層和 etcd 磁碟區佈建 Premium SSD LRS 磁碟。
在 Azure 上的 GKE 工作負載中使用永久儲存空間
在 Azure 上的 GKE 中,您可以使用 Kubernetes PersistentVolume (PV)、PersistentVolumeClaim (PVC) 和 StorageClass 資源,為工作負載提供永久檔案和區塊儲存空間。您可以使用 VolumeSnapshot 和 VolumeSnapshotClass 資源,建立永久儲存空間的快照。快照會儲存在 Azure 帳戶中。
StorageClass
叢集具有預設 Kubernetes StorageClass,可動態佈建 Azure Disk Storage (AzureDisk) 磁碟區的工作負載狀態儲存空間。您也可以使用其他 StorageClass 佈建其他類型的磁碟區。這些選項說明如下。
Azure 儲存體帳戶
建立叢集時,Azure 上的 GKE 會自動建立 Azure 儲存空間帳戶。如要使用特定儲存空間帳戶,請建立自訂儲存空間類別。
設定叢集儲存空間
如要使用非預設的 StorageClass 佈建儲存空間磁碟區,可以在叢集中建立新的 StorageClass,並使用不同的參數或儲存空間驅動程式。接著,您可以將 StorageClass 設為叢集的預設值,或設定工作負載以使用 StorageClass。舉例來說,您可以使用 StatefulSet 設定特定 StorageClass 名稱。
Azure 磁碟儲存空間 (AzureDisk)
GKE on Azure 會使用 azuredisk-csi-driver
管理 Azure 磁碟磁碟區。
CSI 驅動程式版本與 Azure 上的 GKE Kubernetes 版本相關聯。
升級叢集版本時,Azure 上的 GKE 會自動更新驅動程式版本。這個版本通常是 GKE on Azure 版本發布時的最新驅動程式。不支援舊版 Kubernetes kubernetes.io/azure-disk
磁碟區類型。
Azure 上的 GKE 預先安裝的驅動程式預設會提供下列 StorageClass:
standard-rwo
(預設):用於佈建具有 LRS 的標準 SSD Azure 磁碟premium-rwo
:用於佈建具有 LRS 的進階 SSD Azure 磁碟
Azure 磁碟區支援 Kubernetes ReadWriteOnce 存取模式。
磁碟區快照
您可以使用 VolumeSnapshot 資源建立儲存空間磁碟區的快照。然後,您就可以從這些快照佈建新的永久磁碟區。
磁碟區複製
您可以透過 CSI 磁碟區複製功能,複製現有的 Azure 磁碟區。詳情請參閱磁碟區複製範例。
調整音量
您可以使用磁碟區大小調整功能,調整未連結的 Azure 磁碟區大小。詳情請參閱磁碟區大小調整範例。磁碟區已附加並掛接時,不支援調整大小。
Azure 共用磁碟
對於旨在協調寫入共用原始區塊磁碟的工作負載,Azure 上的 GKE 支援 Azure 共用磁碟。詳情請參閱 Azure 磁碟 CSI 說明文件中的共用磁碟(多節點 ReadWrite)。
Azure 檔案儲存空間 (AzureFile)
Azure 中的 GKE 會使用 azurefile-csi-driver
管理 Azure 檔案磁碟區,
CSI 驅動程式與 GKE on Azure Kubernetes 版本相關聯。升級叢集版本時,系統會自動套用新的驅動程式版本。這個版本通常是 GKE on Azure 版本發布時的最新驅動程式。系統不支援舊版 Kubernetes kubernetes.io/azure-file
磁碟區類型。
Azure 上的 GKE 預先安裝的驅動程式預設會提供下列 StorageClass:
Azure 檔案磁碟區使用 Kubernetes ReadWriteMany 存取模式。
磁碟區快照
您可以使用 VolumeSnapshot 資源建立 Azure 檔案磁碟區的快照。詳情請參閱 Azure 檔案快照功能說明文件。如要還原快照,請使用 Azure 入口網站。詳情請參閱「Azure 檔案共用快照總覽」。
調整音量
你可以透過磁碟區大小調整功能,調整 Azure 檔案磁碟區的大小。詳情請參閱磁碟區大小調整範例。
其他儲存空間驅動程式
您可以使用第三方容器儲存空間介面 (CSI) 驅動程式 (建議做法) 或樹狀結構內 Kubernetes 磁碟區外掛程式,透過 GKE on Azure 使用其他第三方儲存系統。
CSI 驅動程式
Container Storage Interface (CSI) 是一種開放標準 API,可讓 Kubernetes 將任意儲存系統附加至容器化工作負載。如需 CSI 驅動程式的非完整清單,請參閱 Kubernetes CSI 開發人員說明文件。GKE on Azure 支援 CSI v1.x。
如要在叢集中使用 CSI 驅動程式,您必須安裝儲存空間供應商提供的 CSI 驅動程式。然後,您可以將工作負載設定為使用驅動程式的 StorageClass,或將其設為預設 StorageClass。
Azure 專屬儲存體驅動程式
下列磁碟區驅動程式可用於 Azure 上的 GKE:
GKE on Azure 不會直接管理 Azure Blob 儲存體。您可以手動安裝 blob-csi-driver
CSI 驅動程式,但 Google 不提供支援。
Kubernetes 樹內磁碟區外掛程式
Kubernetes 隨附樹狀結構內 (內建) 磁碟區外掛程式。支援的樹內驅動程式包括:
- configMap
- emptyDir
- hostPath
- nfs
- 預計
- Secret
後續步驟
- 瞭解如何搭配工作負載使用 StorageClasses。
- 將現有的 Azure 磁碟區匯入 GKE on Azure。
- 請參閱 Azure Disk CSI 驅動程式或 Azure File CSI 驅動程式的說明文件。
- 瞭解 GKE 中的磁碟區快照。
- 請參閱 Kubernetes 的儲存空間類別說明文件。
- 請參閱 Container Storage Interface 版本發布公告。