管理亚马逊 VPC CNI 附加组件 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

管理亚马逊 VPC CNI 附加组件

Amazon EKS 支持使用适用于 Kubernetes 的 Amazon VPC 容器网络接口 (CNI) 插件进行本机 VPC 联网。使用此插件允许 Kubernetes Pod 在 Pod 内具有与其在 VPC 网络上相同的 IP 地址。有关更多信息,请参阅 Pod 联网 (CNI)

下表列出了随每个受支持的群集版本一起部署的 CNI 版本。

与每个 Amazon EKS 支持的集群版本一起部署的 VPC CNI 版本
Kubernetes 版本 1.20 1.19 1.18 1.17
VPC CNI 1.7(最新修补程序版本) 1.7(最新修补程序版本) 1.7(最新修补程序版本) 1.7(最新修补程序版本)

如果您的 1.18 或更高版本的集群尚未添加 VPC CNI Amazon EKS 附加组件,则可以使用添加 Amazon VPC CNI Amazon EKS 附加组件。如果您已将 Amazon VPC CNI Amazon EKS 附加组件添加到 1.16 或更高版本的集群中,您可以使用更新 Amazon VPC CNI Amazon EKS 附加组件删除 Amazon VPC CNI Amazon EKS 附加组件部分. 有关 Amazon EKS 附加组件的更多信息,请参阅Amazon EKS 附加组件

如果您尚未添加亚马逊 VPC CNI 亚马逊 EKS 加载项,则亚马逊 VPC CNI 加载项仍在您的集群上运行。您可以手动更新vpc-cni附加组件使用手动更新亚马逊 VPC CNI 加载项部分.

添加 Amazon VPC CNI Amazon EKS 附加组件

在添加此附加组件之前,我们建议您为您的集群启用 OIDC 提供商,并使用AmazonEKS_CNI_Policy附加到它的 IAM 策略(如果您尚未为此附加组件执行此操作)。有关更多信息,请参阅 为您的集群创建 IAM OIDC 提供商配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色。选择带有要用于将工具名称的选项卡以添加vpc-cniAmazon EKS 附加组件添加到您的集群。

Amazon Web Services Management Console

要添加 Amazon VPC CNI Amazon EKS 附加组件,使用Amazon Web Services Management Console

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

  2. 在左侧导航窗格中,选择集群,然后选择要为其配置 Amazon VPC CNI Amazon EKS 加载项的集群的名称。

  3. 选择配置选项卡,然后选择附加项选项卡。

  4. SelectAdd New

    • Selectvpc-cni对于 来说为名称

    • 选择版本您想使用。

    • (可选,但建议)对于服务帐户角色中,选择您附加的 IAM 角色的名称AmazonEKS_CNI_PolicyIAM 策略。要执行此操作,您必须为您的集群启用 OIDC 提供程序。有关更多信息,请参阅 为您的集群创建 IAM OIDC 提供商配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色

    • 如果您选择启用覆盖群集上此附加组件的现有配置,那么现有加载项的任何设置都可以用 Amazon EKS 加载项的设置覆盖。如果您未启用此选项,并且任何 Amazon EKS 加载项设置与您的现有设置冲突,则将加载项迁移到 Amazon EKS 加载项失败,并且您会收到一条错误消息来帮助您解决冲突。

    • SelectAdd

Amazon CLI

要添加 Amazon VPC CNI Amazon EKS 附加组件,使用Amazon CLI, 请将my-cluster替换为您的集群的名称,然后运行命令。

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

我们建议将--service-account-role-arn my-ARN添加到上一个命令,指定您已附加AmazonEKS_CNI_PolicyIAM 策略。要执行此操作,您必须为您的集群启用 OIDC 提供程序。有关更多信息,请参阅 为您的集群创建 IAM OIDC 提供商配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色。如果您希望加载项使用自己的设置覆盖对加载项所做的任何更改,请添加--resolve-conflicts OVERWRITE选项添加到上一个命令。如果您未启用此选项,并且任何 Amazon EKS 加载项设置与您的现有设置冲突,则将加载项迁移到 Amazon EKS 加载项失败,并且您会收到一条错误消息来帮助您解决冲突。

更新 Amazon VPC CNI Amazon EKS 附加组件

此过程用于更新 Amazon VPC CNI Amazon EKS 附加组件。如果您尚未添加亚马逊 VPC CNI 亚马逊 EKS 附加组件,请完成手动更新亚马逊 VPC CNI 加载项REPLACE. Amazon EKS 不会自动更新 VPC CNI 附加组件,当新版本发布或您之后更新您的集群到一个新的库贝内特的次要版本。要更新现有集群的 Amazon VPC CNI 加载项,您必须启动更新,然后 Amazon EKS 为您更新加载项。

Amazon Web Services Management Console

要使用 Amazon VPC 附加组件更新 Amazon VPC 使用Amazon Web Services Management Console

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

  2. 在左侧导航窗格中,选择集群,然后选择要更新 Amazon VPC CNI 加载项的集群的名称。

  3. 选择配置选项卡,然后选择附加项选项卡。

  4. 请选择右上角的框。VPC-CNI框,然后选择编辑

    • 选择版本的 Amazon EKS 附加组件。

    • (可选,但建议)对于服务帐户角色中,选择您附加的 IAM 角色的名称AmazonEKS_CNI_PolicyIAM 策略到(如果尚未选择)。选择角色需要您已为您的群集启用 OIDC 提供程序。有关更多信息,请参阅 为您的集群创建 IAM OIDC 提供商配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色

    • 如果您选择启用覆盖群集上此附加组件的现有配置,那么现有加载项的任何设置都可以用 Amazon EKS 加载项的设置覆盖。如果您未启用此选项,并且任何 Amazon EKS 加载项设置与您的现有设置冲突,则将加载项迁移到 Amazon EKS 加载项将失败,您将收到一条错误消息,以帮助您解决冲突。

    • Select更新

Amazon CLI

要使用 Amazon VPC 附加组件更新 Amazon VPC 使用Amazon CLI

  1. 查看您的 Amazon VPC CNI Amazon EKS 附加组件的当前版本。Replacemy-cluster将替换为您的集群名称。

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

    输出:

    1.7.0
  2. 确定哪些版本的 Amazon VPC CNI Amazon EKS 附加组件可用于您的集群版本。

    aws eks describe-addon-versions \ --addon-name vpc-cni \ --kubernetes-version 1.19 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" \ --output text

    输出

    ... 1.7.5-eksbuild.2 True ... 1.7.10.eksbuild-1 False

    带有的版本True下面是使用新集群部署的默认版本。

  3. 将附加组件更新为上一步的输出中返回的版本。版本应该是相同的,或者晚于Amazon VPC CNI 版本表。

    aws eks update-addon \ --cluster-name my-cluster \ --addon-name vpc-cni \ --addon-version 1.7.10.eksbuild-1 \ --resolve-conflicts

    我们建议将--service-account-role-arn my-ARN添加到上一个命令,指定您已附加AmazonEKS_CNI_PolicyIAM 策略。要执行此操作,您必须为您的集群启用 OIDC 提供程序。有关更多信息,请参阅 为您的集群创建 IAM OIDC 提供商配置 Amazon VPC CNI 插件以便为服务账户使用 IAM 角色

删除 Amazon VPC CNI Amazon EKS 附加组件

从集群中删除 Amazon EKS 加载项会删除其功能。只有当您的所有窗格都不依赖于附加组件提供的功能时,才应从集群中删除该加载项。删除加载项后,如果需要,您可以再次添加它。

Amazon Web Services Management Console

要使用 Amazon VPC 附加组件,以删除 Amazon VPC 使用Amazon Web Services Management Console

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

  2. 在左侧导航窗格中,选择集群,然后选择要为其删除 Amazon VPC CNI Amazon EKS 加载项的集群的名称。

  3. 选择配置选项卡,然后选择附加项选项卡。

  4. 选择窗口右上角的复选框。vpc-cni框,然后选择Remove。类型vpc-cni,然后选择Remove

Amazon CLI

使用以下命令删除亚马逊 VPC CNI 亚马逊 EKS 附加组件。Replacemy-cluster替换为您集群的名称。

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

手动更新亚马逊 VPC CNI 加载项

如果您拥有 1.17 或更早版本的集群,或者 1.18 或更高版本的集群,但尚未向其添加 Amazon VPC CNI 加载项,请完成以下步骤来更新加载项。如果您已添加亚马逊 VPC CNI 亚马逊 EKS 附加组件,请完成更新 Amazon VPC CNI Amazon EKS 附加组件REPLACE.

确定您当前的亚马逊 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 的最新修补程序。使用以下过程更新 CNI。

更新亚马逊 VPC CNI 附加组件

  • 如果您的 CNI 版本低于次要版本 1.7 的最新补丁,并且您正在自行管理插件,则使用下面的适当命令将 CNI 版本更新为次要版本 1.7 的最新补丁。您可以查看最新修补版本(位于 GitHub 上)。如果您的集群版本为 1.18 或更高版本,并且正在使用 Amazon VPC CNI Amazon EKS 附加组件,则要更新附加组件,请参阅更新kube-proxyAmazon EKS 附加组件

    重要

    在应用新版本的清单时,您对集群上的插件默认设置所做的任何更改都可以被默认设置覆盖。要防止丢失自定义设置,请下载清单,根据需要更改默认设置,然后将修改后的清单应用到您的集群。您应该一次只更新一个次要版本。例如,如果您的当前版本为 1.6,并且您想要更新为 1.8,则应首先更新为 1.7,然后更新到 1.8。

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

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