Amazon EKS 优化版 Windows AMI - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon EKS 优化版 Windows AMI

Windows Amazon EKS 优化版 AMI 是基于 Windows Server 2019 和 Windows Server 2022 构建的。它们被配置作为 Amazon EKS 节点的基本映像。默认情况下,AMI 包括以下组件:

注意

您可以使用 Microsoft 安全更新指南跟踪 Windows Server 的安全或隐私事件。

Amazon EKS 提供了已针对 Windows 容器进行了优化的 AMI,包括以下变体:

  • Amazon EKS 优化版 Windows Server 2019 Core AMI

  • Amazon EKS 优化版 Windows Server 2019 Full AMI

  • Amazon EKS 优化版 Windows Server 2022 Core AMI

  • Amazon EKS 优化版 Windows Server 2022 Full AMI

重要
  • Amazon EKS 优化版 Windows Server 20H2 Core AMI 已弃用。不会发布此 AMI 的任何新版本。

  • 为了确保您在默认情况下安装了最新的安全更新,Amazon EKS 将维持最近 4 个月的经优化的 Windows AMI。自首次发布之日起,每个新 AMI 的可用期为 4 个月。在此期限之后,较旧的 AMI 将变为私有且不能再访问。我们鼓励使用最新的 AMI,以避免出现安全漏洞,避免无法访问已达到其支持生命周期尽头的旧 AMI。虽然我们不能保证可以提供对已设为私有的 AMI 的访问权限,但您可以通过向 Amazon Web Services Support 提交服务单来请求访问权限。

发布日历

下表列出了 Amazon EKS 上的 Windows 版本的发布日期和支持终止日期。如果终止日期为空,则是因为相应版本仍受支持。

Windows 版本 Amazon EKS 版本 Amazon EKS 支持终止
Windows Server 2022 Core 10/17/2022
Windows Server 2022 Full 10/17/2022
Windows Server 20H2 Core 8/12/2021 8/9/2022
Windows Server 2004 Core 8/19/2020 12/14/2021
Windows Server 2019 Core 10/7/2019
Windows Server 2019 Full 10/7/2019
Windows Server 1909 Core 10/7/2019 12/8/2020

引导脚本配置参数

创建 Windows 节点时,节点上有一个允许配置不同参数的脚本。根据您的设置,可以在节点上类似于以下位置:C:\Program Files\Amazon\EKS\Start-EKSBootstrap.ps1 找到此脚本。您可以通过将自定义参数值指定为引导脚本的参数。例如,您可以更新启动模板中的用户数据。有关更多信息,请参阅 Amazon EC2 用户数据

此脚本包含以下命令行参数:

  • -EKSClusterName:指定此 Worker 节点要加入的 Amazon EKS 集群名称。

  • -KubeletExtraArgs:为 kubelet 指定额外的参数(可选)。

  • -KubeProxyExtraArgs:为 kube-proxy 指定额外的参数(可选)。

  • -APIServerEndpoint:指定 Amazon EKS 集群 API 服务器端点(可选)。仅在与 -Base64ClusterCA 一起使用时才有效。绕过调用 Get-EKSCluster

  • -Base64ClusterCA:指定 base64 编码的集群 CA 内容(可选)。仅在与 -APIServerEndpoint 一起使用时才有效。绕过调用 Get-EKSCluster

  • -DNSClusterIP:覆盖用于集群内 DNS 查询的 IP 地址(可选)。基于主接口的 IP 地址,默认值为 10.100.0.10172.20.0.10

  • -ServiceCIDR – 覆盖从中寻址集群服务的 Kubernetes 服务 IP 地址范围。基于主接口的 IP 地址,默认值为 172.20.0.0/1610.100.0.0/16

  • -ExcludedSnatCIDRs – 要从源网络地址转换(SNAT)中排除的 IPv4 CIDR 列表。这意味着,VPC 可寻址的容器组(pod)私有 IP 不会转换为用于出站流量的实例 ENI 主 IPv4 地址的 IP 地址。默认情况下,系统会添加 Amazon EKS Windows 节点的 VPC 的 IPv4 CIDR。为该参数指定 CIDR 还会另外排除所指定的 CIDR。有关更多信息,请参阅 适用于 Pods 的 SNAT

除了命令行参数之外,您还可以指定一些环境变量参数。指定命令行参数时,它优先于相应的环境变量。环境变量应定义为机器(或系统)作用范围,因为引导脚本只会读取机器范围的变量。

该脚本考虑以下环境变量:

  • SERVICE_IPV4_CIDR — 有关定义,请参阅 ServiceCIDR 命令行参数。

  • EXCLUDED_SNAT_CIDRS — 应为以逗号分隔的字符串。有关定义,请参阅 ExcludedSnatCIDRs 命令行参数。

通过 eksctl 启动自行管理的 Windows Server 2022 节点

您可以使用以下 test-windows-2022.yaml 作为参考,将 Windows Server 2022 作为自行管理的节点运行。请将每个 example value 替换为您自己的值。

注意

您必须使用 eksctl 版本 0.116.0 或更高版本来运行自行管理的 Windows Server 2022 节点。

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: windows-2022-cluster region: region-code version: '1.29' nodeGroups: - name: windows-ng instanceType: m5.2xlarge amiFamily: WindowsServer2022FullContainer volumeSize: 100 minSize: 2 maxSize: 3 - name: linux-ng amiFamily: AmazonLinux2 minSize: 2 maxSize: 3

然后,可以使用以下命令创建节点组。

eksctl create cluster -f test-windows-2022.yaml

gMSA 身份验证支持

Amazon EKS Windows Pods 允许不同类型的群组托管服务账户(gMSA)身份验证。

缓存的容器映像

Amazon EKS Windows 优化版 AMI 缓存了某些容器映像,用于 containerd 运行时。使用 Amazon 托管的构建组件构建自定义 AMI 时,系统会缓存容器映像。有关更多信息,请参阅 使用 Amazon 托管的构建组件

以下缓存的容器映像适用于 containerd 运行时系统:

  • amazonaws.com/eks/pause-windows

  • mcr.microsoft.com/windows/nanoserver

  • mcr.microsoft.com/windows/servercore

更多信息

有关使用 Amazon EKS 优化版 Windows AMI 的更多信息,请参阅以下部分: