创建 Amazon VPC CNI(Amazon EKS 附加组件) - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

创建 Amazon VPC CNI(Amazon EKS 附加组件)

使用以下步骤创建适用于 Kubernetes Amazon EKS 附加组件的 Amazon VPC CNI 插件。

开始之前,请查看注意事项。有关更多信息,请参阅 注意事项

先决条件

以下是适用于 Kubernetes Amazon EKS 附加组件的 Amazon VPC CNI 插件的先决条件。

重要

适用于 Kubernetes 的 Amazon VPC CNI 插件版本 v1.16.0v1.16.1 实现了 CNI 规范版本 v1.0.0。有关 CNI 规范 v1.0.0 的更多信息,请参阅 GitHub 上的 Container Network Interface (CNI) Specification

过程

完成先决条件后,请使用以下步骤创建附加组件。

  1. 查看集群上当前安装的附加组件版本。

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

    示例输出如下。

    v1.16.4-eksbuild.2
  2. 查看集群上当前安装的附加组件类型。根据您创建集群时使用的工具,您的集群上目前可能没有安装 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 类型的附加组件。要安装,就需完成此流程中其余的步骤。

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

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. 使用 AWS CLI 创建附加组件。如果要使用 AWS Management Console 或 eksctl 来创建附加组件,请参阅 创建 Amazon EKS 附加组件 并指定 vpc-cni 为附加组件名称。将以下命令复制到您的设备。根据需要对该命令进行以下修改,然后运行修改后的命令。

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

    • v1.19.2-eksbuild.1 替换为适合您集群版本的最新版本表中列出的最新版本。有关最新版本表,请参阅 Amazon VPC CNI 版本

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

      aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.19.2-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole

      如果您对当前附加组件应用的自定义设置与 Amazon EKS 附加组件的默认设置相冲突,则创建可能会失败。如果创建失败,您会收到一条可以帮助您解决问题的错误信息。或者,您可以将 --resolve-conflicts OVERWRITE 添加到前面的命令中。这样一来,附加组件会覆盖任何现有的自定义设置。创建附加组件后,您可以使用自定义设置对其进行更新。

  5. 确认集群的 Kubernetes 版本的附加组件最新版本已添加到集群。将 my-cluster 替换为您的集群的名称。

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

    附加组件创建可能需要几秒钟才能完成。

    示例输出如下。

    v1.19.2-eksbuild.1
  6. 如果您在创建 Amazon EKS 附加组件之前对原始附加组件进行了自定义设置,则请使用您在上一步中保存的配置,以使用您的自定义设置更新 EKS 附加组件。按照更新 Amazon VPC CNI(Amazon EKS 附加组件)中的步骤操作。

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