在 Azure 容器儲存體中啟用多區域儲存體備援
您可在多個區域 Azure Kubernetes Service (AKS) 叢集中使用 Azure 容器儲存體時,使用多區域存放集區和區域備援儲存體 (ZRS) 來改善具狀態的應用程式可用性。 若要建立使用可用性區域的 AKS 叢集,請參閱在 Azure Kubernetes Service 中使用可用性區域。
必要條件
- 本文需要最新版本 (2.35.0 或更新版本) 的 Azure CLI。 請參閱如何安裝 Azure CLI。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。 如果您計劃在本機執行命令,而不是在 Azure Cloud Shell 中執行命令,請務必使用系統管理權限來執行這些命令。
- 您將需要 AKS 叢集,且叢集節點的節點集區至少為三部虛擬機器 (VM),每個節點至少有四個虛擬 CPU (vCPU)。
- 本文假設您已在 AKS 叢集上安裝 Azure 容器儲存體。
- 您需要 Kubernetes 命令列用戶端
kubectl
。 如果您使用 Azure Cloud Shell,則已安裝;您也可以執行az aks install-cli
命令,在本機安裝。
建立多區域存放集區
在存放集區定義中,您可指定要散發儲存體容量的區域。 存放集區總容量將在多個指定的區域中平均散發。 例如,如果指定兩個區域,每個區域取得一半的存放集區容量;如果指定三個區域,每個區域取得三分之一的總容量。 對應儲存體將佈建在每個區域中。 執行提供應用層級複寫 (例如 Cassandra) 的工作負載時,這可提供幫助。
如果指定區域沒有節點,則在該區域中有節點後,便會佈建容量。 永續性磁碟區 (PV) 僅可從一個區域的存放集區容量建立。
zones
的有效值如下:
- },
- ["1"]
- ["2"]
- ["3"]
- ["1", "2"]
- ["1", "3"]
- ["2", "3"]
- ["1", "2", "3"]
請遵循下列步驟,建立使用 Azure 磁碟的多區域存放集區。 針對 zones
,請選擇有效的值。
使用您慣用的文字編輯器來建立 YAML 資訊清單檔,例如
code acstor-multizone-storagepool.yaml
。貼上下列程式碼並儲存檔案。 存放集區 name 值可以是您想要的任何值。 針對 storage,請在 Gi 或 Ti 中指定集區的儲存體容量。
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: azuredisk namespace: acstor spec: zones: ["1", "2", "3"] poolType: azureDisk: {} resources: requests: storage: 1Ti
套用 YAML 資訊清單檔以建立多區域存放集區。
kubectl apply -f acstor-multizone-storagepool.yaml
使用區域備援儲存體 (ZRS) 磁碟
如果工作負載需要儲存體備援,您可運用使用區域備援儲存體的磁碟,在主要區域的三個 Azure 可用性區域中同步複製資料。
您可在存放集區定義中將磁碟 skuName
指定為 StandardSSD_ZRS
或 Premium_ZRS
,如下列範例所示。
apiVersion: containerstorage.azure.com/v1
kind: StoragePool
metadata:
name: azuredisk
namespace: acstor
spec:
poolType:
azureDisk:
skuName: Premium_ZRS
resources:
requests:
storage: 1Ti