关于如何在 Amazon EKS 集群中使用经过 Amazon Elastic Kubernetes Service (Amazon EKS) 优化的 Amazon Linux 2023 (AL2023) 亚马逊机器映像 (AMI),我有一些疑问。
问: 在经 Amazon EKS 优化的 AL2023 AMI 中,我能否使用 Docker 作为容器运行时?
对于任何受支持的 Amazon EKS 版本,Amazon EKS 不支持 Docker 作为 AL2023 中的容器运行时。AWS 移除了 Amazon Linux 2 (AL2) 中的 Amazon EKS 版本 1.24 或更高版本的此项支持。
问: 当我使用 AL2023 来引导节点时,需要注意哪些主要更改?
AL2023 使用一个名为 nodeadm 的全新节点初始化进程,该进程使用 YAML 配置架构。有关更多信息,请参阅 GitHub 网站上的 nodeadm。
执行以下任一操作时,必须明确提供其他集群详细信息:
- 创建自行管理节点组。
- 在启动模板中指定 AMI 以创建托管型节点组。
要在自行管理节点组中引导节点,请至少包含 apiServerEndpoint、certificateAuthority 和 cidr 等必需参数。在 AL2 中,Amazon EKS 使用 DescribeCluster API 调用来获取这些参数。在 AL2023 中,在大规模节点纵向扩展期间,API 调用可能会受到节流。为避免过多的 DescribeCluster API 调用,必须包含这些参数。有关更多信息,请参阅如何在 AL2023 Amazon EKS 节点上使用自定义用户数据?
问: 在使用 AL2023 时,需要注意哪些关于 Amazon EKS 附加组件的更改?
确保 Amazon VPC CNI 附加组件的版本为 1.16.2 或更高版本。有关更多信息,请参阅 GitHub 网站上的 amazon-vpc-cni-k8s。
问: 在使用 AL2023 时,需要注意哪些关于服务账户的更改?
AL2023 要求使用实例元数据服务版本 2 (IMDSv2)。对于 IMDSv2,托管节点组的默认跃点数设置为 1。因此,容器无法使用 IMDS 来访问节点的凭证。如果您的容器必须访问节点的凭证,请手动覆盖自定启动模板中的 HttpPutResponseHopLimit 并将其增加到 2。或者,您可以使用 Amazon EKS 容器组身份来提供凭证。
问: 当我使用 AL2023 时,需要注意哪些关于第三方附加组件的更改?
一些第三方附加组件(例如节点终止处理程序)可能会使用底层节点元数据。在 AL2023 中,托管节点组的默认跃点数设置为 1,因此附加组件无法访问节点的元数据。要解决此问题,请将实例的跃点数限制增加到 2。
问: 我要为 Amazon EKS 上的加速工作负载使用什么 AMI?
现有经 Amazon EKS 优化的 AL2 GPU AMI (AL2_x86_64_GPU) 为同一 AMI 中的 AWS Neuron 设备和 NVIDIA GPU 提供支持。从加速 AL2023 AMI 开始,您可以选择以下各 AMI 变体:
- AL2023_x86_64_NEURON
- AL2023_ARM_64_NVIDIA
每个变体都已针对其相关的加速设备进行优化。有关更多信息,请参阅 Amazon EKS optimized Amazon Linux 2023 accelerated AMIs now available(Amazon EKS 优化的 Amazon Linux 2023 加速 AMI 现已推出)。
问: 在哪里可以找到关于如何在 Amazon EKS 中使用 Amazon Linux 2023 的最新官方文档?
有关最新信息(包括新功能、已知问题和详细配置指南),请参阅从 Amazon Linux 2 升级到 Amazon Linux 2023。最佳做法是定期查看此文档,尤其是在执行迁移或升级之前。