AKS 上 Windows Server 的常見問題

本文提供關於在 Azure Kubernetes Service 上使用 Windows Server 容器的一些最常見問題的解答。

Windows 支援何種磁碟?

Azure 磁碟和 Azure 檔案儲存體 是支援的磁碟區類型,而且會在 Windows Server 容器中以新技術文件系統 (NTFS) 磁碟區的形式存取。

Windows 是否支援第 2 代虛擬機 (VM)?

只有適用於 WS2022 的 Windows 才支援第 2 代 VM。

如需詳細資訊,請參閱 Azure 上第二代 VM 的支援

如何修補我的 Windows 節點?

若要取得 Windows 節點的最新修補檔,您可以升級節點集區升級節點映像

是否支援保留用戶端來源 IP?

是否可以變更每個節點的 Pod 數目上限?

是。 如需詳細資訊,請參閱 Pod 數目上限。

Windows OS 中的預設傳輸控制通訊協定 (TCP) 逾時為何?

Windows OS 中的預設 TCP 逾時為四分鐘。 您無法設定此值。 當應用程式使用更大的逾時值時,相同節點中不同容器之間的 TCP 連線會在四分鐘後關閉。

嘗試建立新的 Windows 代理程式集區時為何出現錯誤?

如果您在 2020 年 2 月之前建立叢集,但未執行任何升級作業,叢集仍會使用舊的 Windows 映像。 您可能會看到類似下列範例的錯誤:

「找不到部署範本所參考的下列映射清單:Publisher: MicrosoftWindowsServer, Offer: WindowsServer, Sku: 2019-datacenter-core-smalldisk-2004, Version: latest. 如需 尋找可用映像的指示,請參閱搭配 Azure PowerShell 尋找和使用 Azure Marketplace 虛擬機映射。

若要修正此問題,您必須執行下列步驟:

  1. 升級叢集控制平面,以更新映射供應專案和發行者。
  2. 建立新的 Windows 代理程式集區。
  3. 將 Windows Pod 從現有的 Windows 代理程式集區移至新的 Windows 代理程式集區。
  4. 刪除舊 Windows 代理程式集區。

當我嘗試部署 Windows Pod 時,為什麼會看到錯誤?

如果您指定的值 --max-pods 小於您想要建立的 Pod 數目,您可能會看到 No available addresses 錯誤。

若要修正此錯誤,請使用 az aks nodepool add 具有足夠 --max-pods 高值的 命令。 例如:

az aks nodepool add \
    --cluster-name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --name $NODEPOOL_NAME \
    --max-pods 3

如需詳細資訊,請參閱 --max-pods 文件

為什麼我的虛擬機節點上有名為 「sshd」 的非預期使用者?

AKS 會在安裝 OpenSSH 服務時,新增名為「sshd」的使用者。 此使用者不是惡意的。 我們建議客戶更新其警示,以忽略這個非預期的使用者帳戶。

如何輪替 Windows 節點集區的服務主體?

Windows 節點集區不支援服務主體輪替。 若要更新服務主體,請建立新的 Windows 節點集區,並將您的 Pod 從較舊的集區遷移至新的集區。 將 Pod 遷移至新的集區之後,請刪除較舊的節點集區。

您可以使用受控識別,而不是服務主體。 如需詳細資訊,請參閱 在 AKS 中使用受控識別。

如何對叢集上的 Windows Server 節點變更管理員密碼?

若要使用 Azure CLI 變更系統管理員密碼,請使用 az aks update 命令搭配 --admin-password 參數。 例如:

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --admin-password <new-password>

若要使用 Azure PowerShell 變更密碼,請使用 Set-AzAksCluster Cmdlet 搭配 -AdminPassword 參數。 例如:

Set-AzAksCluster `
    -ResourceGroupName $RESOURCE_GROUP `
    -Name $CLUSTER_NAME `
    -AdminPassword <new-password>

請記住,執行叢集更新會導致重新啟動,而且只會更新 Windows Server 節點集區。 如需 Windows Server 密碼需求的相關信息,請參閱 Windows Server 密碼需求

我可以建立多少個節點集區?

具有 Windows 節點集區的 AKS 叢集具有與 AKS 服務所指定之預設限制相同的資源限制。 如需詳細資訊,請參閱 Azure Kubernetes Service (AKS) 中的配額、虛擬機器大小限制及區域可用性

是否可以在 Windows 節點上執行輸入控制器?

是,您可以執行支援 Windows Server 容器的輸入控制器。

我的 Windows Server 容器是否可以使用 gMSA?

是。 群組管理的服務帳戶 (gMSA) 支援正式推出,適用於 AKS 上的 Windows。 如需詳細資訊,請參閱 為 Azure Kubernetes Service (AKS) 叢集上的 Windows Server 節點啟用群組受控服務帳戶 (GMSA)

Windows 節點所在叢集上的服務數目有無任何限制?

Windows 節點所在的叢集在連接埠耗盡之前,可以提供約 500 個服務 (有時更少)。 此限制適用於將外部流量原則設定為 「叢集」的 Kubernetes Service。

當服務上的外部流量原則設定為叢集時,流量會在節點上經歷額外的來源 NAT。 此程式也會從 TCPIP 動態埠集區保留埠。 此埠集區是有限的資源(預設為16K個埠),而服務的許多作用中聯機可能會導致動態埠集區耗盡而導致連線中斷。

如果 Kubernetes Service 設定為 「本機」的外部流量原則,則埠耗盡問題不太可能發生在 500 個服務。

如何變更執行中容器的時區?

若要變更執行中 Windows Server 容器的時區,請透過 PowerShell 工作階段連線至執行中的容器。 例如:

kubectl exec -it CONTAINER-NAME -- powershell

在執行中的容器中,使用 Set-TimeZone 來設定執行中容器的時區。 例如:

Set-TimeZone -Id "Russian Standard Time"

若要查看執行中容器的目前時區或可用的時區清單,請使用 Get-TimeZone