更新 Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件 - Amazon EKS

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

更新 Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件

更新 Amazon EKS 类型的附加组件。如果您尚未将 Amazon EKS 类型的附加组件添加到集群,请添加它或参阅 更新 Amazon EKS 自行管理的附加组件

  1. 查看集群上当前安装的附加组件版本。将 my-cluster 替换为您的集群名称。

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text

    示例输出如下。

    v1.16.4-eksbuild.2

    如果返回的版本与最新版本表中集群的 Kubernetes 版本的版本相同,则您的集群上已经安装了最新版本,且您无需完成此过程的其余部分。如果您在输出中收到错误信息而不是版本号,则您的集群上没有安装 Amazon EKS 类型的附加组件。您需要先创建附加组件,然后才能使用此过程对其进行更新。

  2. 保存您当前安装的附加组件的配置。

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  3. 使用 AWS CLI 更新您的附加组件。如果您想要使用 AWS Management Console 或 eksctl 更新附加组件,则请参阅 更新 Amazon EKS 附加组件。将以下命令复制到您的设备。根据需要对该命令进行以下修改,然后运行修改后的命令。

    • my-cluster 替换为您的集群名称。

    • v1.18.5-eksbuild.1 替换为您的集群版本的最新版本表中列出的最新版本。

    • 111122223333 替换为您的账户 ID,并将 AmazonEKSVPCCNIRole 替换为您创建的现有 IAM 角色的名称。指定角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅 为集群创建 IAM OIDC 提供商

    • --resolve-conflicts PRESERVE 选项保留附加组件的现有配置值。如果您为附加组件设置设定了自定义值,但未使用此选项,则 Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项,那么我们建议您在更新生产集群上的附加组件之前,先测试非生产集群上所有更改的字段和值。如果您将该值改为 OVERWRITE,则所有设置都将更改为 Amazon EKS 的默认值。如果您为任何设置设定了自定义值,这些值可能会被 Amazon EKS 的默认值覆盖。如果您将该值改为 none,Amazon EKS 不会更改任何设置的值,但更新可能会失败。如果更新失败,您会收到一条帮助您解决冲突的错误消息。

    • 如果您没有更新配置设置,则请从命令中移除 --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'。如果您更新配置设置,则将 "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} 替换为您想要设置的设置。在此示例中,AWS_VPC_K8S_CNI_EXTERNALSNAT 环境变量设置为 true。您指定的值必须对配置架构有效。如果您不知道配置架构,请运行 aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.18.5-eksbuild.1,并将 v1.18.5-eksbuild.1 替换为您要查看配置的附加组件的版本号。将在输出中返回架构。如果您有任何现有的自定义配置,想要将其全部删除,并将所有设置的值设置回 Amazon EKS 的默认值,请从命令中删除 "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"},这样就可以有空的 {}。有关每项设置的说明,请参阅 GitHub 上的 CNI 配置变量

      aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.18.5-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'

      可能需要几秒钟才能完成更新。

  4. 确认附加组件版本已更新。将 my-cluster 替换为您的集群名称。

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni

    可能需要几秒钟才能完成更新。

    示例输出如下。

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.18.5-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }