Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
连接集群
步骤 1:注册集群
您可以使用 Amazon CLI 和 Amazon Web Services Management Console 将外部 Kubernetes 集群连接到 Amazon EKS。此过程包括两个步骤:向 Amazon EKS 注册集群和应用 YAML 清单文件以启用连接。要允许其他 IAM 主体查看集群,请按照 向 IAM 主体授予查看集群上的 Kubernetes 资源的访问权限 中的说明操作。
您必须拥有以下权限才能注册集群:
-
eks:RegisterCluster
-
ssm:CreateActivation
ssm:DeleteActivation
-
iam:PassRole
- eksctl
-
要使用 eksctl 注册集群
-
提供名称、提供程序和区域来注册集群。
eksctl register cluster --name my-cluster --provider my-provider --region region-code
这会在本地驱动器上创建两个文件: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 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 控制台的访问权限以查看已连接的集群中的 Kubernetes 资源,请参阅向 IAM 主体授予查看集群上的 Kubernetes 资源的访问权限。