將 Azure 專用主機新增至 Azure Kubernetes Service (AKS) 叢集
Azure 專用主機是一個服務,可讓實體伺服器裝載一或多個虛擬機器 - 專用於一個 Azure 訂用帳戶。 專用主機是資料中心內所使用的相同實體伺服器,以資源的形式提供。 您可以在區域、可用性區域和容錯網域中佈建專用主機。 然後,您可以依照最能滿足您需要的設定,將 VM 直接放入已佈建的主機中。
對具有 AKS 叢集的節點使用 Azure 專用主機有下列優點:
- 實體伺服器層級的硬體隔離。 主機上不會放置任何其他 VM。 專用主機會部署在相同的資料中心,並共用與其他非隔離主機相同的網路和基礎儲存體基礎結構。
- 控制由 Azure 平台起始的維護事件。 雖然大多數的維護事件對虛擬機器沒有任何影響,但有一些敏感性工作負載,其中每秒鐘的暫停都會造成影響。 使用專用主機,您可以加入維護期間,以減少對服務的影響。
開始之前
限制
當您整合 Azure 專用主機與 Azure Kubernetes Service 時,適用下列限制:
- 加速網路
- 現有的代理程式集區無法從非 ADH 轉換為 ADH 或從 ADH 轉換為非 ADH。
- 不支援將代理程式集區從主機群組 A 更新為主機群組 B。
- 跨訂用帳戶使用 ADH。
AKS 上的 ADH 容量規劃
並非所有的主機 SKU 都適用於所有區域和可用性區域。 在開始佈建專用主機之前,您可以列出可用的主機及任何供應項目的限制。
az vm list-skus --location eastus --resource-type hostGroups/hosts -o table
注意
首先,使用主機群組時,nodepool 容錯網域計數一律與主機群組容錯網域計數相同。 若要使用叢集自動調整來處理 ADH 和 AKS,請確定您的主機群組容錯網域計數和容量已足夠。 其次,設定錯誤可能導致無法調整的設定,只有在知情的情況下,才能將容錯網域計數從預設值 1 變更為任何其他數字。
評估主機使用率,以判斷在您部署之前依大小的可配置 VM 數目。
az vm host get-instance-view --resource-group myDHResourceGroup --host-group MyHostGroup --name MyHost
將專用主機群組新增至 AKS 叢集
主機群組是代表專用主機集合的資源。 您會在區域和可用性區域中建立主機群組,並在其中新增主機。 在規劃高可用性時,還有其他選項。 您可以使用下列其中一個或兩個選項搭配您的專用主機:
- 跨越多個可用性區域。 在此情況下,您必須在想要使用的每個區域中都有一個主機群組。
- 跨越多個對應至實體機架的容錯網域。
不論是哪一種情況,您都必須為主機群組提供容錯網域計數。 如果您不想在您的群組中跨越容錯網域,請使用容錯網域計數 1。
您也可以決定同時使用可用性區域和容錯網域。
建立主機群組
現在在主機群組中建立專用主機。 除了主機的名稱之外,您還必須提供主機的 SKU。 主機 SKU 會擷取支援的 VM 系列和專用主機的硬體世代。
如需主機 SKU 和定價的詳細資訊,請參閱 Azure 專用主機定價。
使用 az vm host create 來建立主機。 如果您為主機群組設定容錯網域計數,系統會要求您指定主機的容錯網域。
在此範例中,我們將使用 az vm host group create 建立一個同時使用可用性區域和容錯網域的主機群組。
az vm host group create \
--name myHostGroup \
--resource-group myDHResourceGroup \
--zone 1 \
--platform-fault-domain-count 1 \
--automatic-placement true
建立專用主機
現在在主機群組中建立專用主機。 除了主機的名稱之外,您還必須提供主機的 SKU。 主機 SKU 會擷取支援的 VM 系列和專用主機的硬體世代。
如果您為主機群組設定容錯網域計數,您將必須指定主機的容錯網域。
az vm host create \
--host-group myHostGroup \
--name myHost \
--sku DSv3-Type1 \
--platform-fault-domain 1 \
--resource-group myDHResourceGroup
使用使用者指派的身分識別
重要
主機群組的資源群組上需要具有「參與者」角色的使用者指派身分識別。
首先,建立受控識別
az identity create --resource-group <Resource Group> --name <Managed Identity name>
指派受控識別
az role assignment create --assignee <id> --role "Contributor" --scope <Resource id>
使用主機群組建立 AKS 叢集
建立 AKS 叢集,並新增您剛才設定的主機群組。
az aks create \
--resource-group MyResourceGroup \
--name MyManagedCluster \
--location eastus \
--nodepool-name agentpool1 \
--node-count 1 \
--host-group-id <id> \
--node-vm-size Standard_D2s_v3 \
--assign-identity <id> \
--generate-ssh-keys
將專用主機節點集區新增至現有 AKS 叢集
將主機群組新增至已經存在的 AKS 叢集。
az aks nodepool add --cluster-name MyManagedCluster --name agentpool3 --resource-group MyResourceGroup --node-count 1 --host-group-id <id> --node-vm-size Standard_D2s_v3
從 AKS 叢集中移除專用主機節點集區
az aks nodepool delete --cluster-name MyManagedCluster --name agentpool3 --resource-group MyResourceGroup
下一步
在本文中,您已了解如何使用專用主機建立 AKS 叢集,以及將專用主機新增至現有的叢集。 如需專用主機的詳細資訊,請參閱專用主機。