适用于 Kubernetes 的 Amazon VPC CNI 插件升级 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

适用于 Kubernetes 的 Amazon VPC CNI 插件升级

当您启动 Amazon EKS 集群时,适用于 Kubernetes 的 Amazon VPC CNI 插件的最新版本将部署到您的集群。在切换为使用新集群之前的短暂宽限期内,该插件的绝对最新版本在 GitHub 上可用。在发布新版本时,Amazon EKS 不会自动升级集群上的 CNI 插件。要获取现有集群上 CNI 插件的新版本,您必须手动升级该插件。

我们推荐的最新版本是版本 1.7.5。您可以查看插件可用的不同版本,并阅读 GitHub 上每个版本的发行说明。 对于版本 1.7.0 及更高版本,privileged 容器功能已从 CNI pod (aws-node) 中删除。Pod 在其 NET_ADMIN securityContext 中具有 capabilities 功能,aws-node 容器需要该功能才能添加 iptables、路由和规则来设置 Pod 网络。还会将一个 init 容器添加到具有 aws-node 功能的 privileged pod,以便它可以在 aws-node pod 启动期间设置反向路径筛选器并复制环回插件。

重要

如果您已将自定义 Pod 安全策略分配给用于 aws-node Pod 的 aws-node Kubernetes 服务账户,则该策略的 NET_ADMIN 部分必须包含 allowedCapabilities 以及策略的 hostNetwork: true 中的 privileged: truespec。 有关更多信息,请参阅Pod 安全策略

请使用以下过程查看您的 CNI 插件版本并升级到最新建议版本。

查看适用于 Kubernetes 的 Amazon VPC CNI 插件的版本

  • 使用以下命令输出您集群的 CNI 版本:

    kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2

    输出:

    amazon-k8s-cni:1.6.3

    在本示例输出中,CNI 版本为 1.6.3,此版本早于推荐的最新版本 1.7.5。使用以下过程升级 CNI。

升级适用于 Kubernetes 的 Amazon VPC CNI 插件

  • 如果您的 CNI 版本低于 1.7.5,并且您自行管理插件,请使用以下相应命令将 CNI 版本更新为最新建议版本。如果您的集群使用 1.18 平台版本或更高版本运行 Kubernetes eks.3 或更高版本,并且插件由 Amazon EKS 管理,则要更新插件,请参阅配置 Amazon EKS 附加组件

    • 中国(北京) (cn-north-1) 或 中国 (宁夏) (cn-northwest-1

      kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.7.5/config/v1.7/aws-k8s-cni-cn.yaml