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 注册集群
-
提供名称、提供程序和区域来注册集群。
eksctl register cluster --name <my-first-registered-cluster>
--provider <provider> --region <region>
这会在本地驱动器上创建两个文件:my-first-registered-cluster.yaml
和 eks-connector-binding.yaml
文件。必须在 3 天内将这两个文件应用到外部集群,否则注册过期。
在集群的本机环境中应用 eks-connector-binding.yaml
文件:
kubectl apply -f eks-connector-binding.yaml
- Amazon CLI
-
要使用 Amazon CLI 注册集群
-
对于 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"
}
}
您将在后续步骤中使用 region
、activationId
和 activationCode
值。
-
下载 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
-
编辑 Amazon EKS Connector YAML 文件以将 %AWS_REGION%
、%EKS_ACTIVATION_ID%
、%EKS_ACTIVATION_CODE%
的所有引用替换为注册命令输出结果中的 region
、activationId
和 activationCode
。
以下示例命令可以替换这些值。
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
- Amazon Web Services Management Console
-
要向控制台注册 Kubernetes 集群。
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters。
-
选择 Add cluster(添加集群),然后选择 Register(注册)以打开配置页面。
-
在 Configure cluster (配置集群) 部分,填写以下字段:
-
选择 Register cluster(注册集群)。
-
此时将显示集群概览页面。选择 Download YAML file(下载 YAML 文件),以将清单文件下载到本地驱动程序。
继续执行下一步,以将清单文件应用于 Kubernetes 集群。
步骤 2:应用清单文件
通过将 Amazon EKS Connector 清单文件应用于 Kubernetes 集群来完成连接。要执行此操作,必须对前面描述的注册方法使用 Amazon CLI 或 eksctl
。如果没有在 3 天内应用清单,Amazon EKS Connector 注册将过期。如果集群连接过期,则必须在再次连接集群之前注销集群。
-
在集群的本机环境中,您可以运行以下命令应用更新的清单文件:
kubectl apply -f eks-connector.yaml
-
将绑定 Amazon EKS Connector 清单和角色的 YAML 文件应用于 Kubernetes 集群后,确认该集群现在已连接。
aws eks describe-cluster \
--name "my-first-registered-cluster"
\
--region AWS_REGION
该输出应包含 status=ACTIVE
。
现在,您可以向集群添加标签(可选)。有关更多信息,请参阅标记 Amazon EKS 资源。
要向其他 IAM 用户授予对 Amazon EKS 控制台的访问权限以查看已连接的集群,请参阅 向用户授予查看集群的访问权限。您的集群现在可以在 Amazon Web Services Management Console 以及您已连接的节点和工作负载中查看了。