選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 EKS 叢集上部署 Windows 節點

焦點模式
在 EKS 叢集上部署 Windows 節點 - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

部署 Windows 工作節點之前,請注意下列考量事項。

  • EKS Auto Mode 不支援 Windows 節點

  • 您可以透過 HostProcess Pod 在 Windows 節點上使用主機聯網。如需詳細資訊,請參閱 Kubernetes 文件中的建立 Windows HostProcessPod

  • Amazon EKS 叢集必須包含一或多個 Linux 或 Fargate 節點,才能執行僅在 Linux 上執行的核心系統 Pod,例如 CoreDNS。

  • kubeletkube-proxy事件日誌會重新導向至EKS Windows事件日誌,並設定為 200 MB 限制。

  • 您無法使用指派安全群組給在 Windows 節點上執行 Pod 的個別 Pod。

  • 您無法搭配 Windows 節點使用自訂聯網

  • 您無法IPv6搭配 Windows 節點使用 。

  • Windows 節點支援每個節點一個彈性網路介面。根據預設,每個 Windows 節點可執行的 Pod 數量等於節點執行個體類型每個彈性網路界面可用的 IP 地址數量減去一。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型的每個網路介面 IP 地址

  • 在 Amazon EKS 叢集中,具有負載平衡器的單一服務最多可支援 1024 個後端 Pod。每個 Pod 都有自己的唯一 IP 地址。從 OS Build 開始的 Windows Server 更新之後,先前限制為 64 個 Pod。 17763.2746

  • Fargate 上的 Amazon EKS Pod 不支援 Windows 容器。

  • 您無法將 Amazon EKS 混合節點與 Windows 搭配使用,做為主機的作業系統。

  • 您無法從 Pod vpc-resource-controller 擷取日誌。您先前在將控制器部署到資料平面時可以這麼做。

  • 在將 IPv4 地址指派給新的 Pod 之前,有一段冷卻期間。這可以防止流量因 kube-proxy 規則過時而流動到具有相同 IPv4 地址的較舊 Pod。

  • 在 GitHub 上管理控制器的來源。若要對控制器做出貢獻或提出問題,請造訪 GitHub 上的專案

  • 為 Windows 受管節點群組指定自訂 AMI ID 時,請將 eks:kube-proxy-windows新增至您的 AWS IAM Authenticator 組態映射。如需詳細資訊,請參閱指定 AMI ID 時的限制和條件

  • 如果保留可用的 IPv4 地址對您的子網路至關重要,請參閱 EKS 最佳實務指南 - Windows 網路 IP 地址管理以取得指引。

  • 現有的叢集。

  • 您的叢集必須至少有一個 (我們建議至少兩個) Linux 節點或 Fargate Pod 來執行 CoreDNS。如果您啟用舊版 Windows 支援,則必須使用 Linux 節點 (無法使用 Fargate Pod) 來執行 CoreDNS。

  • 現有的 Amazon EKS 叢集 IAM 角色

啟用 Windows 支援

  1. 如果您的叢集中沒有 Amazon Linux 節點,並針對 Pod 使用安全群組,請跳至下一個步驟。否則,請確認 AmazonEKSVPCResourceController 受管政策會連接至叢集角色。使用叢集角色名稱取代 eksClusterRole

    aws iam list-attached-role-policies --role-name eksClusterRole

    範例輸出如下。

    { "AttachedPolicies": [ { "PolicyName": "AmazonEKSClusterPolicy", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSClusterPolicy" }, { "PolicyName": "AmazonEKSVPCResourceController", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSVPCResourceController" } ] }

    如果已連接政策 (如上一個輸出所示),請略過下一個步驟。

  2. AmazonEKSVPCResourceController 受管政策連接至您的 Amazon EKS 叢集 IAM 角色。使用叢集角色名稱取代 eksClusterRole

    aws iam attach-role-policy \ --role-name eksClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSVPCResourceController
  3. 使用下列內容,建立名為 vpc-resource-controller-configmap.yaml 的檔案。

    apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-windows-ipam: "true"
  4. ConfigMap 套用至您的叢集。

    kubectl apply -f vpc-resource-controller-configmap.yaml
  5. 確認您的 aws-authConfigMap包含 Windows 節點執行個體角色的映射,以包含 RBAC eks:kube-proxy-windows 許可群組。您可以透過執行以下命令來驗證。

    kubectl get configmap aws-auth -n kube-system -o yaml

    範例輸出如下。

    apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows # This group is required for Windows DNS resolution to work rolearn: arn:aws: iam::111122223333:role/eksNodeRole username: system:node:{{EC2PrivateDNSName}} [...]

    您應該會在群組下看到 eks:kube-proxy-windows 列出。如果未指定 群組,您需要更新 ConfigMap或建立它,以包含必要的 群組。如需 aws-auth ConfigMap 的詳細資訊,請參閱 將 aws-authConfigMap 套用至您的叢集

部署 Windows Pod

當您將 Pod 部署到叢集時,如果您執行的是節點類型的混合,則需要指定它們使用的作業系統。

對於 Linux Pod,請在資訊清單中使用下列節點選取器文字。

nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64

對於 Windows Pod,請在資訊清單中使用下列節點選取器文字。

nodeSelector: kubernetes.io/os: windows kubernetes.io/arch: amd64

您可以部署範例應用程式來查看正在使用的節點選擇器。

在 Windows 節點上支援更高的 Pod 密度

在 Amazon EKS 中,每個 Pod 都會從您的 VPC 配置一個IPv4地址。因此,您可以部署到節點的 Pod 數量受到可用 IP 地址的限制,即使有足夠的資源可在節點上執行更多 Pod。由於 Windows 節點僅支援一個彈性網路介面,因此依預設,Windows 節點上可用 IP 地址的數量上限為:

Number of private IPv4 addresses for each interface on the node - 1

一個 IP 地址用作網路介面的主要 IP 地址,因此無法配置給 Pod。

您可以啟用 IP 字首委派,在 Windows 節點上啟用更高的 Pod 密度。此功能可讓您將 /28 IPv4 字首指派給主要網路介面,而不是指派次要 IPv4 位址。而指派 IP 字首會將節點上可用 IPv4 地址的數量上限增加到:

(Number of private IPv4 addresses assigned to the interface attached to the node - 1) * 16

有了這個數量較大的可用 IP 地址,可用的 IP 地址不應限制您擴展節點上 Pod 數量的能力。如需詳細資訊,請參閱使用字首將更多 IP 地址指派給 Amazon EKS 節點

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。