更新 Amazon EKS 自行管理的附加组件 - Amazon EKS

帮助改进此页面

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

更新 Amazon EKS 自行管理的附加组件

重要

建议您向集群添加 Amazon EKS 类型的附加组件,而不是自行管理类型的附加组件。如果不熟悉这些类型之间的区别,请参阅 Amazon EKS 附加组件。有关向集群中添加 Amazon EKS 附加组件的更多信息,请参阅 创建 Amazon EKS 附加组件。如果您无法使用 Amazon EKS 附加组件,我们鼓励您向容器路线图 GitHub 存储库提交有关您为什么无法使用的问题。

  1. 确认已在您的集群上安装 Amazon EKS 类型的附加组件。将 my-cluster 替换为您集群的名称。

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

    如果返回错误消息,则表明您的集群上安装有 Amazon EKS 类型的附加组件。要自行管理附加组件,请完成此过程中的剩余步骤以更新附加组件。如果返回版本号,则表明集群上安装有 Amazon EKS 类型的附加组件。要对其进行更新,请使用 更新 Amazon EKS 附加组件 中的过程,而不是此过程。如果不熟悉这些附加组件类型之间的区别,请参阅 Amazon EKS 附加组件

  2. 查看集群上当前安装的容器映像版本。

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    示例输出如下。

    v1.16.4-eksbuild.2

    输出可能不包含版本号。

  3. 备份当前设置,以便在更新版本后可以配置相同设置。

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. 要查看可用版本并熟悉要更新到的版本中的更改,请参阅 GitHub 上的 releases。请注意,我们建议更新到最新可用版本表中列出的相同 major.minor.patch 版本,即使 GitHub 上提供了更新版本。表中列出的构建版本并未在 GitHub 上列出的自行管理版本中指定。通过完成以下选项之一中的任务来更新您的版本:

    • 如果您的附加组件没有任何自定义设置,请在 GitHub 上针对要更新到的版本运行 To apply this release: 标题下的命令。

    • 如果有自定义设置,请使用以下命令下载清单文件。将 https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.18.5/config/master/aws-k8s-cni.yaml 更改为您要更新到的 GitHub 上的版本的 URL。

      curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.18.5/config/master/aws-k8s-cni.yaml

      如有必要,使用您在上一步中创建的备份中的自定义设置修改清单,然后将修改后的清单应用到集群。如果节点无法访问从中提取映像的私有 Amazon EKS Amazon ECR 存储库(参阅清单中以 image: 开头的行),则您必须下载映像,将其复制到自己的存储库,然后修改清单以从存储库中提取映像。有关更多信息,请参阅 将容器镜像从一个存储库复制到另一个存储库

      kubectl apply -f aws-k8s-cni.yaml
  5. 确认新版本现已安装在集群上。

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    示例输出如下。

    v1.18.5
  6. (可选)将 cni-metrics-helper 安装到您的集群。它会抓取弹性网络接口和 IP 地址信息,在集群级别聚合这些信息,并将指标发布到 Amazon CloudWatch。有关更多信息,请参阅 GitHub 上的 cni-metrics-helper