帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
更新 Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件
更新 Amazon EKS 类型的附加组件。如果您尚未将 Amazon EKS 类型的附加组件添加到集群,请添加它或参阅 更新 Amazon EKS 自行管理的附加组件。
-
查看集群上当前安装的附加组件版本。将
替换为您的集群名称。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 类型的附加组件。您需要先创建附加组件,然后才能使用此过程对其进行更新。
-
保存您当前安装的附加组件的配置。
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
使用 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-versionv1.18.5-eksbuild.1
\ --service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKSVPCCNIRole
\ --resolve-conflictsPRESERVE
--configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
}'可能需要几秒钟才能完成更新。
-
-
确认附加组件版本已更新。将
替换为您的集群名称。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\"}
}" } }