关于如何在 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 或更高版本的此项支持。有关更多信息,请参阅 Amazon EKS 终止了对 Dockershim 的支持。
**问:**当我使用 AL2023 来引导节点时,需要注意哪些主要更改?
AL2023 使用了一个新的名为 nodeadm 的节点初始化过程,nodeadm 使用了 YAML 配置架构。有关更多信息,请参阅 GitHub 网站上的 nodeadm。
执行以下任一操作时,必须明确提供其他集群详细信息:
- 创建自行管理节点组。
- 在启动模板中指定 AMI 以创建托管型节点组。
要在自行管理节点组中引导节点,请确保至少包含 apiServerEndpoint、certificateAuthority 和 cidr 等必需参数。在 AL2 中,Amazon EKS 使用 DescribeCluster API 调用来获取这些参数。但是,在 AL2023 中,在大规模节点纵向扩展期间,API 调用可能会受到节流。为避免过多的 DescribeCluster API 调用,必须包含这些参数。
**问:**在使用 AL2023 时,需要注意哪些关于 Amazon EKS 附加组件的更改?
确保 Amazon VPC CNI 附加组件的版本为 1.16.2 或更高版本。
**问:**在使用 AL2023 时,需要注意哪些关于服务账户的更改?
AL2023 要求使用实例元数据服务版本 2 (IMDSv2)。对于 IMDSv2,托管型节点组的默认跳数设置为 1,因此容器无法使用 IMDS 来访问节点的凭证。如果您的容器必须访问节点的凭证,请手动覆盖自定义 Amazon EC2 启动模板中的 HttpPutResponseHopLimit 并将其增加到 2。或者,您可以使用 Amazon EKS 容器组身份来提供凭证。
**问:**当我使用 AL2023 时,需要注意哪些关于第三方附加组件的更改?
一些第三方附加组件(例如节点终止处理程序)可能会使用底层节点元数据。在 AL2023 中,托管型节点组的默认跳数设置为 1,因此附加组件无法访问节点的元数据。要解决此问题,请将实例的跳数限制增加到 2。有关更多信息,请参阅 GitHub 网站上的 EKS 最佳实践指南中的当应用程序需要访问 IMDS 时,请使用 IMDSv2 并将 EC2 实例的跳数限制增加到 2。
**问:**我需要为 Amazon EKS 上的加速工作负载使用什么 AMI?
对于加速工作负载,请使用 AL2 加速 AMI 或 Bottlerocket。基于 AL2023 的 Amazon EKS 加速 AMI 目前不可用。