连接集群 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

连接集群

步骤 1:注册集群

您可以使用 Amazon CLI 和 Amazon Web Services Management Console 将外部 Kubernetes 集群连接到 Amazon EKS。此过程包括两个步骤:向 Amazon EKS 注册集群和应用 YAML 清单文件以启用连接。要允许其他用户查看集群,请按照 向用户授予查看集群的访问权限 中的说明操作。

您必须拥有以下权限才能注册集群:

  • eks:RegisterCluster

  • ssm:CreateActivation

  • ssm:DeleteActivation

  • iam:PassRole

eksctl

先决条件

  • eksctl必须安装 v0.68 或更高版本的 。要安装或升级,请参阅 eksctl 入门

  • 创建 Amazon EKS Connector 代理 IAM 角色。有关更多信息,请参阅 Connector IAM 角色

要使用 eksctl 注册集群

  1. 提供名称、提供程序和区域来注册集群。

    eksctl register cluster --name <my-first-registered-cluster> --provider <provider> --region <region>

    这会在本地驱动器上创建两个文件:my-first-registered-cluster.yamleks-connector-binding.yaml 文件。必须在 3 天内将这两个文件应用到外部集群,否则注册过期。

  2. 在集群的本机环境中应用 eks-connector-binding.yaml 文件:

    kubectl apply -f eks-connector-binding.yaml
Amazon CLI

先决条件

  • Amazon CLI必须安装 。要进行安装或升级,请参阅安装 Amazon CLI

  • 确保创建了 Amazon EKS Connector 代理角色。

要使用 Amazon CLI 注册集群

  1. 对于 Connector 配置,请指定您的 Amazon EKS Connector 代理 IAM 角色。有关更多信息,请参阅 Amazon EKS Connector 所需的 IAM 角色

    aws eks register-cluster \ --name my-first-registered-cluster \ --connector-config roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider="OTHER" \ --region AWS_REGION

    输出:

    { "cluster": { "name": "my-first-registered-cluster", "arn": "arn:aws:eks:region:111122223333:cluster/my-first-registered-cluster", "createdAt": 1627669203.531, "ConnectorConfig": { "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", "activationExpiry": 1627672543.0, "provider": "OTHER", "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" }, "status": "CREATING" } }

    您将在后续步骤中使用 regionactivationIdactivationCode 值。

  2. 下载 Amazon EKS Connector YAML 文件。

    curl -o eks-connector.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
  3. 编辑 Amazon EKS Connector YAML 文件以将 %AWS_REGION%%EKS_ACTIVATION_ID%%EKS_ACTIVATION_CODE% 的所有引用替换为注册命令输出结果中的 regionactivationIdactivationCode

    以下示例命令可以替换这些值。

    sed -i "s~%AWS_REGION%~$AWS_REGION~g; s~%EKS_ACTIVATION_ID%~$EKS_ACTIVATION_ID~g; s~%EKS_ACTIVATION_CODE%~$(echo -n $EKS_ACTIVATION_CODE | base64)~g" eks-connector.yaml
重要

确保激活码采用 base64 格式。

Amazon Web Services Management Console

先决条件

  • 确保创建了 Amazon EKS Connector 代理角色。

要向控制台注册 Kubernetes 集群。

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

  2. 选择 Add cluster(添加集群),然后选择 Register(注册)以打开配置页面。

  3. Configure cluster (配置集群) 部分,填写以下字段:

    • Name(名称)– 集群的唯一名称。

    • Provider(提供程序)– 选择以显示 Kubernetes 集群提供程序的下拉列表。如果您不了解具体的提供程序,请选择 Other(其他)。

    • EKS Connector 角色:选择用于连接集群的角色。

  4. 选择 Register cluster(注册集群)。

  5. 此时将显示集群概览页面。选择 Download YAML file(下载 YAML 文件),以将清单文件下载到本地驱动程序。

    重要
    • 这是您下载此文件的唯一机会。不要离开此页面,否则将无法访问此链接,届时您必须注销集群并从头开始此步骤。

    • 对于已注册集群,只能使用一次清单文件。如果从 Kubernetes 集群中删除资源,则必须重新注册集群并获取新的清单文件。

    继续执行下一步,以将清单文件应用于 Kubernetes 集群。

步骤 2:应用清单文件

通过将 Amazon EKS Connector 清单文件应用于 Kubernetes 集群来完成连接。要执行此操作,必须对前面描述的注册方法使用 Amazon CLI 或 eksctl。如果没有在 3 天内应用清单,Amazon EKS Connector 注册将过期。如果集群连接过期,则必须在再次连接集群之前注销集群。

  1. 在集群的本机环境中,您可以运行以下命令应用更新的清单文件:

    kubectl apply -f eks-connector.yaml
  2. 将绑定 Amazon EKS Connector 清单和角色的 YAML 文件应用于 Kubernetes 集群后,确认该集群现在已连接。

    aws eks describe-cluster \ --name "my-first-registered-cluster" \ --region AWS_REGION

    该输出应包含 status=ACTIVE

  3. 现在,您可以向集群添加标签(可选)。有关更多信息,请参阅标记 Amazon EKS 资源

要向其他 IAM 用户授予对 Amazon EKS 控制台的访问权限以查看已连接的集群,请参阅 向用户授予查看集群的访问权限。您的集群现在可以在 Amazon Web Services Management Console 以及您已连接的节点工作负载中查看了。