共用方式為


在 Azure Kubernetes Service (AKS) 執行 Windows 容器的最佳做法

您可在 AKS 建立節點集區,在節點執行 Linux 或 Windows Server 作為作業系統 (OS)。 Windows Server 節點可執行原生 Windows 容器應用程式,例如 .NET Framework。 Linux OS 和 Windows OS 有不同的容器支援和設定考量因素。 如需詳細資訊,請參閱 Kube 中的 Windows 容器考量因素。 若要深入瞭解各種產業如何在 AKS 使用 Windows 容器,請參閱 Windows AKS 客戶案例

本文概述在 AKS 執行 Windows 容器的最佳做法。

使用 Linux 和 Windows 節點集區建立 AKS 叢集

您建立新的 AKS 叢集時,Azure 平台會預設建立 Linux 節點集區。 此節點集區包含叢集運作所需的系統服務。 Azure 也會建立及管理從使用者抽象化的控制平面,讓您不會暴露在裝載主要控制平面元件的節點基礎 OS。 建議您至少在預設 Linux 節點集區執行兩個節點,以確保叢集的可靠性與效能。 除非您刪除整個叢集,否則您無法刪除預設的 Linux 節點集區。

在某些情況下,在規劃於 AKS 叢集執行 Windows 型工作負載時,您應該考慮部署 Linux 節點集區,例如:

  • 如果您想要執行 Linux 和 Windows 工作負載,可以在相同叢集中部署 Linux 節點集區和 Windows 節點集區。
  • 如果您想要以 Linux 為基礎部署基礎結構相關元件 (例如 NGINX),就需要一起使用 Linux 節點集區與 Windows 節點集區。 您可以使用控制平面節點進行開發和測試情節。 如果是正式作業工作負載,建議您部署獨立的 Linux 節點集區,以確保可靠性和效能。

使用 AKS 上的 Windows 將現有應用程式現代化

您可能想要容器化現有應用程式,並在 AKS 上使用 Windows 執行它們。 開始容器化流程之前,請務必瞭解應用程式架構和相依性。 如需詳細資訊,請參閱使用 Windows 容器將現有應用程式容器化

Windows OS 版本

最佳做法指導

Windows Server 2022 提供改善的安全性和效能,而且建議用於 AKS 上 Windows 節點集區的 OS。 AKS 使用 Windows Server 2022 作為主機 OS 版本,並且僅支援處理序隔離。

AKS 支援 Windows Server 作業系統的兩個選項:長期維護通道版本 (LTSC) 以及適用於容器的 Windows Server 年度通道。

  1. AKS 支援長期維護通道版本 (LTSC),包括 Windows Server 2022 和 Windows Server 2019。 此通道每三年發行一次,而且支援期限為五年。 使用長期支援 (LTS) 的客戶應該使用 Windows Server 2022。

    AKS 以 Windows Server 2019 和 Windows Server 2022 為主機 OS 版本,且僅支援流程隔離。 AKS 不支援以其他 Windows Server 版本建立的容器映像。 如需詳細資訊,請參閱 Windows 容器版本相容性

    Windows Server 2022 是 Kube 1.25 版及更新版本的預設 OS。 Kubernetes 1.32 版生命週期結束之後,將會淘汰 Windows Server 2019。 Kubernetes 1.34 版生命週期結束之後,將會淘汰 Windows Server 2022。 如需詳細資訊,請參閱 AKS 發行備註。 若要掌握最新的 Windows Server OS 版本,並深入了解我們規劃在 AKS 上所支援項目的藍圖,請參閱我們的 AKS 公用藍圖

  2. AKS 支援適用於容器的 Windows Server 年度通道 (預覽)。 此通道每年發行一次,而且支援期限為 2 年。 此通道有益於需要增加創新週期和可移植性的客戶。 可移植性功能可讓 Windows Server 2022 型容器映像 OS 在較新版本的 Windows Server 主機 OS 上執行,例如新的年度通道版本。

    Windows 年度通道版本是以節點集區的 Kubernetes 版本為基礎。 若要從某個年度通道版本升級至下一個版本,請升級至 Kubernetes 版本,而此版本支援下一個年度通道版本。 如需詳細資訊,請參閱 AKS 上適用於容器的 Windows Server 年度通道

網路

網路模式

最佳做法指導

具有 Windows 節點集區的 AKS 叢集,僅支援及預設使用 Azure 容器網路介面 (Azure CNI)。

Windows 不支援 kubenet 網路。 具有 Windows 節點集區的 AKS 叢集必須使用 Azure CNI。 如需詳細資訊,請參閱 AKS 中的應用程式網路概念

Azure CNI 會根據您的工作負載需求提供兩種網路模式:

  • Azure CNI 重疊是類似於 kubenet 的重疊網路。 重疊網路可讓您針對節點及其內部 Pod 的私人位址空間使用虛擬網路 (VNet) IP,並可在整個叢集重複使用。 Azure CNI 重疊是建議使用的網路模式。 其中提供簡易的網路設定和管理,以及 AKS 網路功能的最佳可擴縮性。
  • Azure CNI 搭配動態 IP 配置需要對 IP 位址管理進行額外規劃及考量。 此模式提供適合節點 Pod 的 VNet IP。 此設定可讓您直接存取 Pod IP, 不過會增加複雜度且降低可擴縮性。

為了協助您決定要使用的網路模式,請參閱選擇網路模型

網路原則

最佳做法指導

使用網路原則保護 Pod 之間的流量。 Windows 支援 Azure Network Policy Manager 和 Calico 網路原則。 如需詳細資訊,請參閱網路原則引擎之間的差異:Cilium、Azure NPM 和 Calico

管理 Pod 之間的流量時,您應該套用最低權限準則。 Kube 網路原則功能可讓您在叢集的 Pod 之間定義及強制執行輸入和輸出流量規則。 如需詳細資訊,請參閱在 AKS 中使用網路原則來保護 Pod 之間的流量

AKS 叢集上使用 Calico 網路原則的 Windows Pod 會預設啟用浮動 IP。

升級和更新

請務必讓您的 Windows 環境保持最新狀態,以確保您的系統具有最新的安全性更新、功能集與合規性需求。 在 AKS 之類的 Kube 環境中,您需要維護 Kube 版本、Windows 節點,以及 Windows 容器映像和 Pod。

Kube 版本升級

AKS 是受控 Kubernetes 服務,提供將叢集升級至最新 Kube 版本的必要工具。 如需詳細資訊,請參閱升級 AKS 叢集

Windows 節點每月更新

AKS 上的 Windows 節點會遵循每月更新排程。 AKS 每個月都會使用 Windows 節點集區的最新可用更新來建立新的 VHD。 VHD 包含主機映像、最新的 Nano Server 映像、最新的 Server Core 映像和容器。 建議您對 Windows 節點集區執行每月更新,以確保您的節點具有最新的安全性修補檔。 如需詳細資訊,請參閱升級 AKS 節點映像

注意

Windows 系統升級包括 OS 版本升級和每月節點 OS 更新。

您可以使用 AKS 發行版本追蹤器AKS 發行備註,以掌握可用的最新每月版本。

Windows 節點 OS 版本升級

Windows 依據版本步調發行新版本的 OS,包括 Windows Server 2019 和 Windows Server 2022。 升級 Windows 節點 OS 版本時,請確定 Windows 容器映像版本符合 Windows 容器主機版本,且節點集區只有一個版本的 Windows Server。

若要升級 Windows 節點 OS 版本,您需要完成下列步驟:

  1. 使用新的 Windows Server 版本建立新節點集區。
  2. 使用新的 Windows 容器映像將工作負載部署到新節點集區。
  3. 解除舊節點集區。

如需詳細資訊,請參閱在 AKS 升級 Windows Server 工作負載

注意

Windows 宣佈推出新的 Windows Server Annual Channel for Containers,支援可攜性和混合版本的 Windows 節點和容器。 AKS 尚未支援此功能。

若要追蹤 AKS 功能計畫,請參閱公開 AKS 藍圖

下一步

若要深入瞭解 AKS 的 Windows 容器,請參閱下列資源: