共用方式為


教學課程:安裝 Azure 容器儲存體以與 Azure Kubernetes Service 搭配使用

Azure 容器儲存體是雲端式磁碟區管理、部署和協調流程服務,專為容器原生建置。 在本教學課程中,您將建立 Azure Kubernetes Service (AKS) 叢集,並在叢集上安裝最新生產版本的 Azure 容器儲存體。 如果您已部署 AKS 叢集,建議您使用本快速入門安裝 Azure 容器儲存體,而不是遵循本教學課程中的手動步驟。

重要

Azure 容器儲存體現已正式發行 (GA),從 1.1.0 版開始。 建議對生產環境工作負載使用 GA 版本。

  • 建立資源群組
  • 選擇資料儲存體選項和 VM 類型
  • 建立 AKS 叢集
  • 連線至叢集
  • 為節點集區加上標籤
  • 將 Azure 容器儲存體操作員角色指派給 AKS 受控識別
  • 安裝 Azure 容器儲存體

必要條件

  • 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

  • 本文需要最新版本 (2.35.0 或更新版本) 的 Azure CLI。 請參閱如何安裝 Azure CLI。 若您使用的是 Azure Cloud Shell 中的 Bash 環境,即已安裝最新版本。 如果您打算在本機執行命令,而不是在 Azure Cloud Shell 中執行命令,請務必使用系統管理權限來執行這些命令。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell

  • 您將需要 Kubernetes 命令列用戶端,kubectl。 如果您使用 Azure Cloud Shell,則已安裝;您也可以執行 az aks install-cli 命令,在本機安裝。

  • 檢查您的目標區域是否受 Azure 容器儲存體區域支援。

開始使用

  • 記下您的 Azure 訂用帳戶識別碼。 如果您想要使用 Azure 彈性 SAN 作為資料儲存體,您需要 Azure 容器儲存體擁有者角色,或指派給 Azure 訂用帳戶的 Azure 容器儲存體參與者角色。 擁有者層級存取可讓您安裝 Azure 容器儲存體延伸模組、授與其儲存體資源的存取權,以及提供您設定 Azure 彈性 SAN 資源的權限。 參與者層級存取可讓您安裝延伸模組,並授與其儲存體資源的存取權。 如果您打算使用 Azure 磁碟或暫時性磁碟作為資料儲存體,則不需要訂用帳戶上的特殊存取權限。

  • 啟動 Azure Cloud Shell,或如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。

  • 如果您使用 Azure Cloud Shell,系統可能會提示您掛接儲存體。 選擇您要在其中建立儲存體帳戶的 Azure 訂用帳戶,然後選取 [建立]

安裝必要的延伸項目

執行下列命令,以新增或升級至最新版本的 k8s-extension

az extension add --upgrade --name k8s-extension

設定訂用帳戶內容

使用 az account set 命令來設定您的 Azure 訂用帳戶內容。 您可以執行 az account list --output table 命令,檢視您有權存取之所有訂用帳戶的訂用帳戶識別碼。 請記得將 <subscription-id> 取代為您的訂用帳戶識別碼。

az account set --subscription <subscription-id>

建立資源群組

Azure 資源群組是一個邏輯群組,可保存您想要作為群組管理的 Azure 資源。 建立資源群組時,系統提示您指定位置。 此位置為:

  • 資源群組中繼資料的儲存位置。
  • 如果您未在資源建立期間指定另一個區域,則是您會在 Azure 中執行資源的位置。

使用 az group create 命令建立資源群組。 將 <resource-group-name> 取代為您想要建立的資源群組名稱,並將 <location> 取代為 Azure 區域,例如 eastuswestus2westus3westeurope

az group create --name <resource-group-name> --location <location>

如果已成功建立資源群組,您會看到類似以下的輸出:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

選擇資料儲存體選項和虛擬機器類型

建立叢集之前,您應先瞭解最後選擇建立儲存體集區的後端儲存體選項。 這是因為不同儲存體服務適用於不同虛擬機器 (VM) 類型作為叢集節點,而且會先部署叢集再建立儲存體集區。

資料儲存體選項

  • Azure 彈性 SAN:Azure 彈性 SAN 適用於一般用途資料庫、串流和傳訊服務、CI/CD 環境及其他第 1 階層/第 2 階層工作負載。 依建立的磁碟區和磁碟區快照集隨選佈建儲存體。 多個叢集可以同時存取單一 SAN,不過永續性磁碟區一次只能由一個取用者連結。

  • Azure 磁碟:Azure 磁碟非常適合 MySQL、MongoDB 及 PostgreSQL 等資料庫。 依據目標容器存放集區大小和磁碟區大小上限佈建。

  • 暫時性磁碟:此選項會在 AKS 節點上使用本機 NVMe 磁碟機或暫存 SSD 磁碟機,而且對延遲非常敏感 (低子毫秒延遲),因此適用於不需要資料持久性的應用程式,或具有 Cassandra 等內建資料複寫支援的應用程式。 AKS 會探索 AKS 節點上可用的暫時性儲存體,並取得磁碟機以進行磁碟區部署。

資源取用量

Azure 容器儲存體需要特定節點資源來執行服務的元件。 根據存放集區類型選取項目,您會在安裝 Azure 容器儲存體時指定這些資源:

存放集區類型 CPU 核心 RAM
Azure 彈性 SAN  無
Azure 磁碟 1 1 GiB
暫時性磁碟 - 暫時 SSD 1 1 GiB
暫時性磁碟 - 本機 NVMe (標準層) 25% 的核心 (效能層級級可以更新)* 1 GiB

取用的資源是每個節點,而且會針對將安裝 Azure 容器儲存體的節點集區中的每個節點取用。 如果您的節點沒有足夠的資源,Azure 容器儲存體將無法執行。 Kubernetes 會自動重新嘗試初始化這些失敗的 Pod,因此如果資源獲釋,則可以再次初始化這些 Pod。

*在存放集區類型暫時磁碟 - 本機 NVMe 標準 (預設) 效能層級中,如果您使用叢集節點的多個 VM SKU 類型,所取用的 25% CPU 核心會套用至所使用的最小 SKU。 例如,如果您使用 8 核心和 16 核心 VM 類型的混合,則資源耗用量為 2 個核心。 您可以更新效能層級,以使用較大百分比的核心,並達到更高的 IOPS。

確定叢集的 VM 類型符合下列準則

若要使用 Azure 容器儲存體,您需要至少三個 Linux VM 的節點集區。 每個 VM 至少應有四個虛擬 CPU (vCPU)。 Azure 容器儲存體將在部署擴充功能的每個 VM 上取用一個核心進行 I/O 處理。

選擇叢集節點的 VM 類型時,請遵循這些指導方針。 您必須選擇支援 Azure 高階儲存體的 VM 類型。

建立新的 AKS 叢集並安裝 Azure 容器儲存體

如果您已部署 AKS 叢集,請遵循本快速入門中的安裝指示。

執行下列命令以建立新的 AKS 叢集、安裝 Azure Container Storage 及建立存放集區。 將 <cluster-name><resource-group> 取代為您自己的值,並指定要使用的 VM 類型。 以 azureDiskephemeralDiskelasticSan 取代 <storage-pool-type>。 如果您選取 ephemeralDisk,您也必須指定 --storage-pool-option,而且值可以是 NVMeTemp

執行此命令會在具有三個 Linux VM 的系統節點集區*上啟用 Azure 容器儲存體。 如果您要為存放集區類型指定本機 NVMe,請務必將節點計數設定為 4 或更大,否則命令將無法執行。

根據預設,系統節點集區的名稱為 nodepool1。 如果您要在其他節點集區上啟用 Azure 容器儲存體,請參閱在特定節點集區上安裝 Azure 容器儲存體。 如果您想要搭配此命令指定其他存放集區參數,請參閱此資料表

*如果標籤有任何現有的節點集 acstor.azure.com/io-engine:acstor 區,Azure Container Storage 預設會安裝數據平面元件。 否則,使用者可以選擇透過 Azure CLI 將慣用的節點集區傳遞至 acstor 。 如果叢集只有系統節點集區,則預設會標示並用於 Azure Container Storage。 請務必注意,只有數據平面元件會限制為標示的節點集區。 Azure Container Storage 的控制平面元件不限於標示的節點,也可能安裝在系統節點集區上。

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_D4s_v3 --node-count 3 --enable-azure-container-storage <storage-pool-type> --generate-ssh-keys

部署時間需要 10-15 分鐘。 完成時,您將會安裝已安裝 Azure 容器儲存體的 AKS 叢集、已啟用所選存放集區的元件,以及預設存放集區。 如果您要開啟其他存放集區類型來建立其他存放集區,請參閱啟用其他存放集區類型

重要

如果您將 Azure 彈性 SAN 指定為存放集區的支援儲存體,而且您沒有指派給 Azure 訂用帳戶的 Azure 容器儲存體擁有者 (部分機器翻譯) 角色或 Azure 容器儲存體參與者 (部分機器翻譯) 角色,則安裝 Azure 容器儲存體將會失敗,而且不會建立存放集區。 如果您嘗試在沒有這些角色的情況下啟用 Azure 彈性 SAN 做為其他存放集區類型,則先前的安裝和存放集區將不受影響,且不會建立彈性 SAN 存放集區。

顯示可用的存放集區

若要取得可用的存放集區清單,請執行下列命令:

kubectl get sp -n acstor

若要檢查存放集區的狀態,請執行下列命令:

kubectl describe sp <storage-pool-name> -n acstor

如果 Message 未表示 StoragePool is ready,則您的存放集區仍在建立或遇到問題。 請參閱疑難排解 Azure 容器儲存體

後續步驟

選取您所選取備份儲存體類型的連結,並遵循指示建立磁碟區。