Windows 工作节点 - Eksctl 用户指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Windows 工作节点

从 1.14 版本开始,亚马逊 EKS 支持允许运行 Windows 容器的 Windows 节点。除了拥有 Windows 节点外,还需要集群中的 Linux 节点才能运行 CoreDNS,因为微软还不支持主机网络模式。因此,一个 Windows EKS 集群将是 Windows 节点和至少一个 Linux 节点的混合体。Linux 节点对群集的运行至关重要,因此,对于生产级群集,建议至少有两个 t2.large Linux 节点用于 HA。

注意

您不再需要在 Linux 工作节点上安装 VPC 资源控制器即可在 2021 年 10 月 22 日之后创建的 EKS 集群中运行 Windows 工作负载。你可以通过 ConfigMap 设置在 EKS 控制平面上启用 Windows IP 地址管理(详情请参阅链接:eks/latest/userguide/windows-support.html)。创建 Windows 节点组时,eksctl 将自动修补 ConfigMap 以启用 Windows IP 地址管理。

创建支持 Windows 的新集群

配置文件语法允许通过单个命令创建支持 Windows 的功能齐全的集群:

# cluster.yaml
# An example of ClusterConfig containing Windows and Linux node groups to support Windows workloads
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: windows-cluster
  region: us-west-2

nodeGroups:
  - name: windows-ng
    amiFamily: WindowsServer2019FullContainer
    minSize: 2
    maxSize: 3

managedNodeGroups:
  - name: linux-ng
    instanceType: t2.large
    minSize: 2
    maxSize: 3

  - name: windows-managed-ng
    amiFamily: WindowsServer2019FullContainer
    minSize: 2
    maxSize: 3
eksctl create cluster -f cluster.yaml

要在不使用配置文件的情况下使用 Windows 非托管节点组创建新集群,请发出以下命令:

eksctl create cluster --managed=false --name=windows-cluster --node-ami-family=WindowsServer2019CoreContainer

为现有的 Linux 群集添加 Windows 支持

要允许在具有 Linux 节点(AmazonLinux2AMI 系列)的现有集群上运行 Windows 工作负载,您需要添加一个 Windows 节点组。

增了对 Windows 托管节点组的支持(--managed=true 或省略标志)。

eksctl create nodegroup --managed=false --cluster=existing-cluster --node-ami-family=WindowsServer2019CoreContainer eksctl create nodegroup --cluster=existing-cluster --node-ami-family=WindowsServer2019CoreContainer

为确保将工作负载安排在正确的操作系统上,它们必须将运行的操作系统作为nodeSelector目标:

# Targeting Windows nodeSelector: kubernetes.io/os: windows kubernetes.io/arch: amd64
# Targeting Linux nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64

如果您使用的是早于的集群1.19,则需要将kubernetes.io/oskubernetes.io/arch标签beta.kubernetes.io/arch分别替换为beta.kubernetes.io/os和。

进一步信息