Azure Stack HCI 和 Windows Server 上的 Azure Kubernetes Service 系統需求

適用於:Azure Stack HCI、版本 21H2 和 20H2;Windows Server 2022 Datacenter、Windows Server 2019 Datacenter

本文涵蓋設定 Azure Stack HCI 上的 Azure Kubernetes Service 或 Windows Server Datacenter 的需求,並使用其建立 Kubernetes 叢集。 如需 Azure Stack HCI 和 Windows Server 上 AKS 的概觀,請參閱 Azure Stack HCI 和 Windows Server 上的 AKS 概觀

Active Directory 需求

若要讓 Azure Stack HCI 和 Windows Server 上的 AKS,或是 Windows Server Datacenter 能以最佳方式在 Active Directory 環境中運作,請務必滿足下列需求:

  • 設定時間同步處理,讓所有叢集節點和網域控制站之間的分歧不超過 2 分鐘。 如需設定時間同步處理的詳細資訊,請參閱 Windows 時間服務

  • 請確定用來新增更新的使用者帳戶,以及管理 Azure Stack HCI 和 Windows Server 上的 AKS 或 Windows Server Datacenter 叢集,在 Active Directory 中具有正確的權限。 如果您使用組織單位 (OU) 管理伺服器和服務的群組原則,則使用者帳戶將需要 OU 中所有物件的列出、讀取、修改和刪除權限。

  • 在 Azure Stack HCI 和 Windows Server 上的 AKS 或 Windows Server Datacenter 叢集會在伺服器和服務中使用個別的組織單位 (OU)。 使用個別的 OU 可讓您以更細微的方式控制存取和權限。

  • 如果您在 Active Directory 的容器上使用 GPO 範本,請確定在部署 Azure Stack HCI 和 Windows Server 上的 AKS 時,不受原則的豁免。 後續版本將會提供伺服器強化。

硬體需求

Microsoft 建議您向我們的合作夥伴購買經過驗證的 Azure Stack HCI 硬體/軟體解決方案。 這些解決方案經過設計、組合和驗證,可執行我們的參考結構,並確認相容性和可靠性,讓您可以快速啟動並執行。 您應該檢查您所使用的系統、元件、裝置和驅動程式是否為依據 Windows Server Catalog 的 Windows Server 認證。 造訪 Azure Stack HCI 解決方案網站,以取得已驗證的解決方案。

支援的硬體規格上限

不支援超過下列規格的 Azure Stack HCI 和 Windows Server 上的 AKS 部署:

資源 最大值
每個叢集的實體伺服器 8
VM 數目總計 200

計算需求

最低記憶體需求

您可以透過下列方式設定 AKS 叢集,以便在具有有限 RAM 的單一節點 Windows 伺服器上執行 AKS。

叢集類型 控制平面 VM 大小 背景工作節點 針對更新作業 負載平衡器
AKS 主機 Standard_A4_v2 VM 大小 = 8GB NA - AKS 主機沒有背景工作角色節點 8GB NA - AKS 主機會使用 kubevip 來進行負載平衡
工作負載叢集 Standard_A4_v2 VM 大小 = 8GB 1 個背景工作角色節點的 Standard_K8S3_v1 = 6GB 可以重複使用上述的 8GB 保留以進行工作負載叢集升級 如果 kubevip 用於負載平衡 (而不是預設的 HAProxy 負載平衡器),則 NA
最低需求總計 30GB RAM

請記住,上述最低需求是使用 1 個背景工作角色節點的 AKS HCI 部署來執行容器化應用程式。 如果您選擇新增背景工作角色節點或 HAProxy 負載平衡器,則最終的 RAM 需求將會適當地變更。

環境 每一伺服器的 CPU 核心數目 RAM
Azure Stack HCI 或 Windows Server 叢集 32 256 GB
Windows Server 容錯移轉叢集 32 256 GB
單一節點 Windows 伺服器 16 128 GB

若是生產環境,最終的大小會取決於您打算在 Azure Stack HCI 或 Windows Server 叢集上部署的應用程式和背景工作角色節點數目。 如果您選擇在單一節點 Windows Server 上執行 AKS,就不會獲得在 Azure Stack HCI 或 Windows Server 叢集,或是 Windows Server 容錯移轉叢集上執行 AKS 所產生的高可用性功能。

Azure Stack HCI 或 Windows Server 上 AKS 的其他計算需求符合 Azure Stack HCI 需求。 如需 Azure Stack HCI 伺服器需求的詳細資訊,請造訪 Azure Stack HCI 系統需求

您必須在叢集中的每部伺服器上安裝相同的作業系統。 如果您使用 Azure Stack HCI,在叢集中的每部伺服器上,相同的作業系統和版本必須相同。 如果您使用 Windows Server Datacenter,在叢集中的每部伺服器上,相同的作業系統和版本必須相同。 每個作業系統都必須使用 EN-US 區域和語言選項。 您無法在安裝後變更這些設定。

儲存體需求

Azure Stack HCI 和 Windows Server 上的 AKS 支援下列儲存體實作:

名稱 儲存體類型 所需容量
Azure Stack HCI 叢集 叢集共用磁碟區 1 TB
Windows Server Datacenter 容錯移轉叢集 叢集共用磁碟區 1 TB
單一節點 Windows Server Datacenter 直接連結存放裝置 500 GB

針對 Azure Stack HCI 或 Windows Server 叢集,您有兩個支援的儲存體設定,可執行虛擬機器工作負載。

  • 混合式儲存體會使用快閃儲存體和硬碟 (HDD) 來平衡效能和容量。
  • 全快閃儲存體使用固態硬碟 (SSD) 或 NVMe 來達到最大效能。

Azure Stack HCI 不支援只有 HDD 型存放裝置的系統,因此不建議執行 Azure Stack HCI 和 Windows Server 上的 AKS。 您可以在 Azure Stack HCI 文件中閱讀有關建議磁碟機設定的詳細資訊。 在 Azure Stack HCI 目錄中驗證的所有系統都屬於上述兩個支援的存放裝置設定之一。

Kuberentes 會使用 etcd 來儲存叢集的狀態。 Etcd 會儲存執行中 pod 的設定、規格和狀態。 此外,Kubernetes 會使用存放區來探索服務。 作為 Kubernetes 作業的協調元件及其支援的工作負載,etcd 的延遲和輸送量很重要。 您必須在 SSD 上執行 AKS。 如需詳細資訊,請參閱 etcd.io 的效能

針對 Windows Server Datacenter 型的叢集,您可以使用本機儲存體或 SAN 型存放裝置進行部署。 針對本機儲存體,建議使用內建的儲存空間直接存取,或同等的經認證虛擬 SAN 解決方案來建立超融合式基礎結構,以提供可供工作負載使用的叢集共用磁片區。 針對儲存空間直接存取,您的存放裝置必須使用混合式 (flash + HDD) 以平衡效能和容量,或使用全快閃 (SSD,NVMe) 以將效能最大化。 如果您選擇使用 SAN 型存放裝置進行部署,請確定您的 SAN 存放裝置可提供足夠的效能,以執行數個虛擬機器工作負載。 較舊的 HDD 型 SAN 儲存體可能無法提供執行多個虛擬機器工作負載所需的效能層級,而且您可能會遭遇效能問題和超時。

若為使用本機儲存體的單一節點 Windows Server 部署,強烈建議使用全快閃儲存體 (SSD,NVMe),以提供在單一實體主機上裝載多部虛擬機器所需的效能。 如果沒有快閃記憶體儲存體,HDD 上較低的效能層級可能會導致部署問題和超時。

網路需求

下列需求適用於 Azure Stack HCI 和 Windows Server 叢集,以及 Windows Server Datacenter 叢集:

  • 如果您要使用 Windows Admin Center,請確認您已設定現有的外部虛擬交換器。 針對 Azure Stack HCI 或 Windows Server 叢集,此參數和其名稱在所有叢集節點上都必須相同。

  • 確認您已在所有網路介面卡上停用 IPv6。

  • 若要成功部署,Azure Stack HCI 或 Windows Server 叢集節點,以及 Kubernetes 叢集 VM 必須具有外部網際網路連線能力。

  • 請確定您為叢集定義的所有子網路都可在彼此間路由傳送到網際網路。

  • 請確定 Azure Stack HCI 主機和租用戶 VM 之間有網路連線能力。

  • 所有節點都必須解析 DNS 名稱,才能彼此通訊。

  • (建議) 在您的 DNS 環境中啟用動態 DNS 更新,以允許 Azure Stack HCI 和 Windows Server 上的 AKS 在 DNS 系統中註冊雲端代理程式一般叢集名稱並進行探索。

IP 位址指派

在 Azure Stack HCI 和 Windows Server 上的 AKS 中,虛擬網路是用來將 IP 位址配置給需要位址的 Kubernetes 資源,如上所示。 有兩種網路模型可供選擇,視您所需 Azure Stack HCI 和 Windows Server 上的 AKS 網路架構而定。

注意

此處為針對 Azure Stack HCI 和 Windows Server 上的 AKS 部署定義的虛擬網路架構,與您資料中心內的基礎實體網路架構不同。

  • 靜態 IP 網路

    虛擬網路會將靜態 IP 位址分配給 Kubernetes 叢集 API 伺服器、Kubernetes 節點、基礎 VM、負載平衡器,以及您在叢集上執行的任何 Kubernetes 服務。

  • DHCP 網路

    虛擬網路會使用 DHCP 伺服器,將動態 IP 位址配置給 Kubernetes 節點、基礎 VM 和負載平衡器。 Kubernetes 叢集 API 伺服器和您在叢集上執行的任何 Kubernetes 服務仍會配置靜態 IP 位址。

IP 位址保留的最小值

您至少應該為您的部署保留下列 IP 位址數目:

叢集類型 控制平面節點 背景工作節點 針對更新作業 負載平衡器
AKS 主機 1 IP NA 2 IP NA
工作負載叢集 每個節點 1 個 IP 每個節點 1 個 IP 5 IP 1 IP

此外,您應該為您的 VIP 集區保留下列 IP 位址數目:

資源類型 IP 位址數目
叢集 API 伺服器 每個叢集 1 個
Kubernetes 服務 每個服務 1 個

如您所見,視 Azure Stack HCI 和 Windows Server 上的 AKS 架構和您在 Kubernetes 叢集上執行的服務數目而定,所需的 IP 位址數目會變動。 建議您為您的部署保留總計 256 個 IP 位址 (/24 子網路)。

如需網路需求的詳細資訊,請造訪 Azure Stack HCI 和 Windows Server 上的 AKS 節點網路概念Azure Stack HCI 和 Windows Server 上的 AKS 容器網路概念

網路埠和 URL 需求

Azure Stack HCI 和 Windows Server 上的 AKS 需求

當在 Azure Stack HCI 上建立 Azure Kubernetes Cluster 時,下列防火牆連接埠會自動在叢集的每部伺服器上開啟。

如果 Azure Stack HCI 實體叢集節點和 Azure Kubernetes 叢集 VM 位於兩個獨立的 vlan 上,則這些連接埠必須在防火牆之間開啟。

Port 來源 描述 防火牆注意事項
22 AKS VM 在使用 Get-AksHciLogs 收集記錄時的所需項目 如果使用個別的 VLAN,實體 Hyper-V 主機會需要存取此連接埠上的 AKS VM。
6443 AKS VM 與 Kubernetes API 通訊的所需項目 如果使用個別的 VLAN,實體 Hyper-V 主機會需要存取此連接埠上的 AKS VM。
45000 實體 Hyper-V 主機 wssdAgent gRPC 伺服器 不需要跨 VLAN 規則。
45001 實體 Hyper-V 主機 wssdAgent gRPC 驗證 不需要跨 VLAN 規則。
46000 AKS VM wssdCloudAgent 到 lbagent 如果使用個別的 VLAN,實體 Hyper-V 主機會需要存取此連接埠上的 AKS VM。
55000 叢集資源 (-CloudServiceCIDR) 雲端代理程式 gRPC 伺服器 如果使用個別的 VLAN,AKS VM 會需要存取此連接埠上的叢集資源 IP。
65000 叢集資源 (-CloudServiceCIDR) 雲端代理程式 gRPC 驗證 如果使用個別的 VLAN,AKS VM 會需要存取此連接埠上的叢集資源 IP。

如果您的網路需要使用 proxy 伺服器來連線到網際網路,請參閱在 Azure Stack HCI 和 Windows Server 上的 AKS 使用 proxy 伺服器設定

您必須將下列 URL 新增至允許清單。

URL 連接埠 備註
msk8s.api.cdp.microsoft.com 443 從 SFS 下載 Azure Stack HCI 上的 AKS 產品目錄、產品位和 OS 映像時才使用。在執行 Set-AksHciConfig 和從 SFS 下載時的任何時候發生。
msk8s.b.tlu.dl.delivery.mp.microsoft.com 80 用來從 SFS 下載 Azure Stack HCI 上的 AKS 產品目錄、產品位元和 OS 映像。 當您從 SFS 下載並執行 Set-AksHciConfig 時隨時發生。
msk8s.f.tlu.dl.delivery.mp.microsoft.com 80 用來從 SFS 下載 Azure Stack HCI 上的 AKS 產品目錄、產品位元和 OS 映像。 當您從 SFS 下載並執行 Set-AksHciConfig 時隨時發生。
login.microsoftonline.com 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
login.windows.net 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
management.azure.com 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
www.microsoft.com 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
msft.sts.microsoft.com 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
graph.windows.net 443 用來在執行 Set-AksHciRegistration 時登入 Azure。
ecpacr.azurecr.io 443 執行 Install-AksHci 時,提取容器映像所需。
*.blob.core.windows.net 美國端點:wus2replica*.blob.core.windows.net 443 執行 Install-AksHci 時,提取容器映像所需。
mcr.microsoft.com、*.mcr.microsoft.com 443 執行 Install-AksHci 時,提取容器映像所需。
akshci.azurefd.net 443 執行 Install-AksHci 時 AKS Azure Stack HCI 上的 AKS 計費所需。
v20.events.data.microsoft.com 443 定期用來從 Azure Stack HCI 或 Windows Server 主機傳送 Microsoft 必要的診斷資料。
adhs.events.data.microsoft.com 443 定期用來從控制平面節點傳送 Microsoft 必要的診斷資料。

Azure Stack HCI 上的 AKS 中的延展式叢集和 Windows Server 上的 AKS

延展式叢集概觀中所述,不支援使用 Windows 延展式叢集在 Azure Stack HCI 和 Windows Server 上部署 AKS。 建議您針對資料中心作業持續性使用備份和災害復原方法。 如需詳細資訊,請參閱 在 Azure Stack HCI 和 Windows Server 上使用 Velero 和 Azure Blob 儲存體執行工作負載叢集備份或還原,以及 使用 GitOps 搭配 Flux v2 在 AksHci 上部署 設定,以取得應用程式持續性。

Kubernetes 需求的弧線

注意

由於管理叢集 (AKS 主機) 使用 Azure Arc 進行計費,因此您必須針對 Azure Arc 啟用的 Kubernetes 叢集,遵循這些網路需求

Azure Stack HCI 需求

注意

您也應該檢查 Azure Stack HCI 的 URL

適用於伺服器的 Arc 需求

注意

由於適用於伺服器的 Arc 預設會從 Azure Stack HCI 21H2 安裝在 Azure Stack HCI 節點上,因此,您也應該檢查適用於伺服器的 Arc 代理程式 URL

Windows Admin Center 需求

Windows Admin Center 是建立和管理 Azure Stack HCI 和 Windows Server 上 AKS 的使用者介面。 若要搭配 Azure Stack HCI 和 Windows Server 上的 AKS 使用 Windows Admin Center,您必須符合下列清單中的所有條件。

以下是執行 Windows Admin Center 閘道的電腦需求:

  • Windows 10 或 Windows Server 電腦
  • 註冊 Azure
  • 在與 Azure Stack HCI 或 Windows Server Datacenter 叢集相同的網域中
  • 您身為擁有者的 Azure 訂用帳戶。 您可以瀏覽至自己的訂用帳戶,然後按一下 Azure 入口網站左側的 [存取控制 (IAM)] 並按一下 [檢視我的存取權],以檢查您的存取層級。

Azure 需求

您必須連線至 Azure 帳戶。

Azure 帳戶和訂用帳戶

如果您還沒有 Azure 帳戶,請建立帳戶。 您可以使用任何類型的現有訂用帳戶:

Azure AD 權限、角色和存取層級

您必須擁有足夠的權限,才能向 Azure AD 租用戶註冊應用程式。

若要檢查您是否有足夠的權限,請遵循下列資訊:

  • 移至 [Azure 入口網站],然後選取 [Azure Active Directory] 底下的 [角色和管理員],以檢查您的角色。
  • 如果您的角色是 [使用者],則必須確定非系統管理員可以註冊應用程式。
  • 若要檢查是否可以註冊應用程式,請移至 Azure Active Directory 服務底下的 [使用者設定],以檢查您是否有註冊應用程式的權限。

如果應用程式註冊設定設為 [否],則只有具備系統管理員角色的使用者才能註冊這些類型的應用程式。 若要了解 Azure AD 中可用的系統管理員角色及賦予每個角色的特定權限,請參閱 Azure AD 內建角色。 如果您的帳戶已指派「使用者」角色,但應用程式註冊設定僅限於系統管理員使用者,您可以請系統管理員指派其中一個可建立和管理所有應用程式註冊層面的系統管理員角色給您,或是讓使用者能夠註冊應用程式。

如果您沒有足夠的權限可註冊應用程式,且您的管理員無法授與您這些權限,則部署 Azure Stack HCI 和 Windows Server 上 AKS 最簡單的方式,就是要求 Azure 管理員建立具有正確權限的服務主體。 系統管理員可以檢查下列章節,以瞭解如何建立服務主體。

Azure 訂用帳戶角色和存取層級

若要檢查您的存取層級,您可以瀏覽至自己的訂用帳戶,然後選取 Azure 入口網站左側的 [存取控制 (IAM)] 並選取 [檢視我的存取權]。

  • 如果您使用 Windows Admin Center 部署 AKS 主機或 AKS 工作負載叢集,則必須具有您身為擁有者的 Azure 訂用帳戶。
  • 如果您要使用 PowerShell 來部署 AKS 主機或 AKS 工作負載叢集,註冊叢集的使用者必須至少有下列其中一項

如果您的 Azure 訂用帳戶是透過 EA 或 CSP,則部署 Azure Stack HCI 和 Windows Server 上的 AKS 最簡單的方式,就是要求您的 Azure 系統管理員建立具有正確權限的服務主體。 系統管理員可以查看下一節,以瞭解如何建立服務主體。

選擇性:建立新的服務主體

執行下列步驟,以使用內建的 Kubernetes 已連線叢集角色來建立新服務主體。 只有訂用帳戶擁有者可使用正確的角色指派來建立服務主體。 您可以瀏覽至自己的訂用帳戶,然後按一下 Azure 入口網站左側的 [存取控制 (IAM)] 並按一下 [檢視我的存取權],以檢查您的存取層級。

安裝並匯入下列 Azure PowerShell 模組:

Install-Module -Name Az.Accounts -Repository PSGallery -RequiredVersion 2.2.4
Import-Module Az.Accounts 
Install-Module -Name Az.Resources -Repository PSGallery -RequiredVersion 3.2.0
Import-Module Az.Resources
Install-Module -Name AzureAD -Repository PSGallery -RequiredVersion 2.0.2.128
Import-Module AzureAD

關閉所有 PowerShell 視窗,然後重新開啟新的系統管理工作階段。

請使用 Connect-AzAccount PowerShell 命令登入 Azure:

Connect-AzAccount

藉由執行 Set-AzContext 命令,設定您想要註冊作為預設訂閱,用於計費 AKS 主機的訂閱。

Set-AzContext -Subscription myAzureSubscription

執行 Get-AzContext PowerShell 命令,確認您的登入內容是否正確。 確認訂用帳戶、租用戶和帳戶是您要用來註冊 AKS 主機以進行計費的訂用帳戶、租用戶和帳戶。

Get-AzContext
Name                                     Account                      SubscriptionName             Environment                  TenantId
----                                     -------                      ----------------             -----------                  --------
myAzureSubscription (92391anf-...        user@contoso.com             myAzureSubscription          AzureCloud                   xxxxxx-xxxx-xxxx-xxxxxx

藉由執行 New-AzADServicePrincipal PowerShell 命令來建立服務主體。 此命令會建立具有「Microsoft Kubernetes 連線叢集」角色的服務主體, 並將範圍設定在訂用帳戶等級。 如需有關建立服務主體的詳細資訊,請造訪使用 Azure PowerShell 建立 Azure 服務主體

$sp = New-AzADServicePrincipal -role "Microsoft.Kubernetes connected cluster"

藉由執行下列命令來取出服務主體的密碼:

$secret = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sp.Secret))
Write-Host "Application ID: $($sp.ApplicationId)"
Write-Host "App Secret: $secret"

從上述輸出中,您現已具有在部署 Azure Stack HCI 和 Windows Server 上的 AKS 時,可用的應用程式識別碼秘密。 您應該記下這些項目並加以安全地儲存。 建立之後,在 Azure 入口網站的 [訂用帳戶]、[存取控制] 和 [角色指派] 底下,您應該會看到新的服務主體。

Azure 資源群組

您必須於註冊前即在澳大利亞東部、美國東部、東南亞或西歐 Azure 區域中具有可用的 Azure 資源群組。

後續步驟

滿足上述所有必要條件之後,您可以使用下列程式在 Azure Stack HCI 上設定 AKS 主機: