共用方式為


教學課程:安裝 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 核心 記憶體
Azure 彈性 SAN  無
Azure 磁碟 1 1 吉位元組
暫時性磁碟 - 暫時 SSD 1 1 吉位元組
暫時性磁碟 - 本機 NVMe (標準層) 25% 的核心 (效能層級級可以更新)* 1 吉位元組

取用的資源是每個節點,而且會針對將安裝 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 類型。 以 <storage-pool-type>azureDiskephemeralDisk 取代 elasticSan。 如果您選取 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 Elastic SAN 啟用為不含上述任一角色的額外存放集區類型 ,則先前的安裝和存放集區將不會受到影響,且不會建立彈性 SAN 存放集區。

顯示可用的存放集區

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

kubectl get sp -n acstor

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

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

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

後續步驟

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