帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
重要
建议您向集群添加 Amazon EKS 类型的附加组件,而不是自行管理类型的附加组件。如果不熟悉这些类型之间的区别,请参阅 Amazon EKS 附加组件。有关向集群中添加 Amazon EKS 附加组件的更多信息,请参阅 创建 Amazon EKS 附加组件。如果您无法使用 Amazon EKS 附加组件,我们鼓励您向容器路线图 GitHub 存储库
先决条件
-
现有 Amazon EKS 集群。要部署一个角色,请参阅开始使用 Amazon EKS。
注意事项
-
Amazon EKS 集群上的
Kube-proxy
具有与 Kubernetes 相同的兼容性和偏斜策略。了解如何验证 Amazon EKS 附加组件版本与集群的兼容性。 -
确认已在集群上安装自行管理类型的附加组件。将
my-cluster
替换为您的集群的名称。aws eks describe-addon --cluster-name my-cluster --addon-name kube-proxy --query addon.addonVersion --output text
如果返回错误消息,则表明集群上安装有自行管理类型的附加组件。本主题中的其余步骤用于更新自行管理类型的附加组件。如果返回版本号,则表明集群上安装有 Amazon EKS 类型的附加组件。要更新附加组件的 Amazon EKS 类型,请使用更新 Amazon EKS 附件组件中的程序,而不是此主题中的程序。如果不熟悉这些附加组件类型之间的区别,请参阅 Amazon EKS 附加组件。
-
查看集群上当前安装的容器映像版本。
kubectl describe daemonset kube-proxy -n kube-system | grep Image
示例输出如下。
Image: 602401143452.dkr.ecr.region-code.amazonaws.com/eks/kube-proxy:v1.29.1-eksbuild.2
在示例输出中,集群上安装的版本是
v1.29.1-eksbuild.2
。 -
通过将
602401143452
和region-code
替换为上一步中输出的值,更新kube-proxy
附加组件。将v1.30.6-eksbuild.3
替换为最新可用的自行管理 kube-proxy 容器映像版本中针对各 Amazon EKS 集群版本表列出的kube-proxy
版本。重要
每种图像类型的清单都不同,且在默认或最小图像类型之间不兼容。您必须使用与前一个图像相同的图像类型,以便入口点与参数匹配。
kubectl set image daemonset.apps/kube-proxy -n kube-system kube-proxy=602401143452.dkr.ecr.region-code.amazonaws.com/eks/kube-proxy:v1.30.6-eksbuild.3
示例输出如下。
daemonset.apps/kube-proxy image updated
-
确认新版本现已安装在集群上。
kubectl describe daemonset kube-proxy -n kube-system | grep Image | cut -d ":" -f 3
示例输出如下。
v1.30.0-eksbuild.3
-
如果您在同一集群中使用
x86
和Arm
节点,而且您的集群是在 2020 年 8 月 17 日之前部署的。那么请使用以下命令编辑您的kube-proxy
清单以将多个硬件架构的节点选择器纳入其中。您只需执行此操作一次。将选择器添加到清单中之后,您无需在每次更新附加组件时都进行添加。如果您的集群是在 2020 年 8 月 17 日或之后部署的,则kube-proxy
已经具有多架构功能。kubectl edit -n kube-system daemonset/kube-proxy
将以下节点选择器添加到编辑器中的文件中,然后保存文件。有关在编辑器的何处纳入此文本的示例,请参阅 GitHub 上的 CNI 清单
文件。这让 Kubernetes 能够根据节点的硬件架构提取正确的硬件映像。 - key: "kubernetes.io/arch" operator: In values: - amd64 - arm64
-
如果集群最初是使用 Kubernetes
1.14
版本或更高版本创建的,则可以跳过此步骤,因为kube-proxy
已经包含了此Affinity Rule
。如果 Amazon EKS 集群最初是使用 Kubernetes1.13
版本或更低版本创建的,且打算在集群中使用 Fargate 节点,则编辑kube-proxy
清单纳入NodeAffinity
规则,防止从 Fargate 节点上调度kube-proxy
容器组(pod)。您只需执行此编辑一次。将Affinity Rule
添加到清单中之后,您无需在每次更新附加组件时都进行添加。编辑kube-proxy
Daemonset。kubectl edit -n kube-system daemonset/kube-proxy
将以下
Affinity Rule
添加到编辑器中文件中的 DaemonSetspec
部分,然后保存文件。有关在编辑器的何处纳入此文本的示例,请参阅 GitHub 上的 CNI 清单文件。 - key: eks.amazonaws.com/compute-type operator: NotIn values: - fargate
-