Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
将外部 Kubernetes 集群连接到 Amazon EKS 管理控制台
您可以在以下过程中使用多种方法将外部 Kubernetes 集群连接到 Amazon EKS。此过程包括两个步骤:向 Amazon EKS 注册集群,在集群中安装 eks-connector
代理。
您必须在完成第一步后 3 天内(注册到期之前)完成第二步。
注意事项
安装代理时,您可以使用 YAML 清单。或者,如果您向 Amazon Web Services Management Console 或 Amazon Command Line Interface 注册集群,则可以使用 Helm。但是,如果您向 eksctl
注册集群,则无法使用 Helm 安装代理。
先决条件
步骤 1:注册集群
- 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"
}
}
在下一步中使用 aws-region
、activationId
和 activationCode
值。
- Amazon Web Services Management Console
-
要向控制台注册 Kubernetes 集群。
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters。
-
选择 Add cluster(添加集群),然后选择 Register(注册)以打开配置页面。
-
在 Configure cluster (配置集群) 部分,填写以下字段:
-
选择 Register cluster(注册集群)。
-
此时将显示集群概览页面。如果您想使用 Helm 图表,请复制 helm install
命令并继续下一步。如果要使用 YAML 清单,请选择下载 YAML 文件,将清单文件下载到本地驱动程序。
继续执行下一步,以将清单文件应用于 Kubernetes 集群。
- eksctl
-
要使用 eksctl
注册集群
-
提供名称、提供程序和区域来注册集群。
eksctl register cluster --name my-cluster
--provider my-provider
--region region-code
输出示例:
2021-08-19 13:47:26 [ℹ] creating IAM role "eksctl-20210819194112186040"
2021-08-19 13:47:26 [ℹ] registered cluster "<name>" successfully
2021-08-19 13:47:26 [ℹ] wrote file eks-connector.yaml to <current directory>
2021-08-19 13:47:26 [ℹ] wrote file eks-connector-clusterrole.yaml to <current directory>
2021-08-19 13:47:26 [ℹ] wrote file eks-connector-console-dashboard-full-access-group.yaml to <current directory>
2021-08-19 13:47:26 [!] note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "<aws-arn>", edit if required; read https://eksctl.io/usage/eks-connector for more info
2021-08-19 13:47:26 [ℹ] run `kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml` before expiry> to connect the cluster
这将在本地计算机上创建文件。必须在 3 天内将这些文件应用到外部集群,否则注册将会过期。
-
在可以访问集群的终端中,应用 eks-connector-binding.yaml
文件:
kubectl apply -f eks-connector-binding.yaml
步骤 2:安装 eks-connector
代理
- Helm chart
-
如果您向 eksctl
注册了集群,则请使用 YAML 清单方法而不是 Helm 图表方法。
-
如果在上一步中使用了 Amazon CLI,请将以下命令中的 ACTIVATION_CODE
和 ACTIVATION_ID
分别替换为 activationId
、和 activationCode
值。将 aws-region
替换为在上一步中使用的 Amazon Web Services 区域。然后运行命令在注册集群上安装 eks-connector
代理:
$
helm install eks-connector \
--namespace eks-connector \
oci://public.ecr.aws/eks-connector/eks-connector-chart \
--set eks.activationCode=ACTIVATION_CODE
\
--set eks.activationId=ACTIVATION_ID
\
--set eks.agentRegion=aws-region
如果在上一步中使用了 Amazon Web Services Management Console,请使用从上一步复制的已填充这些值的命令。
-
检查已安装 eks-connector
部署的运行状况,并等待 Amazon EKS 中已注册集群的状态变为 ACTIVE
。
- YAML manifest
-
通过将 Amazon EKS Connector 清单文件应用于 Kubernetes 集群来完成连接。为此,必须使用前面描述的方法。如果没有在 3 天内应用清单,Amazon EKS Connector 注册将过期。如果集群连接过期,则必须在再次连接集群之前注销集群。
-
下载 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%
的所有引用替换为上一步输出的 aws-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
-
在可以访问集群的终端中,可以运行以下命令应用更新的清单文件:
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 资源。
后续步骤
如果您对这些步骤有任何疑问,请参阅 排查 Amazon EK Connector 问题。
要向其他 IAM 主体授予对 Amazon EKS 控制台的访问权限以查看已连接的集群中的 Kubernetes 资源,请参阅授予在 Amazon EKS 控制台上查看 Kubernetes 集群资源的权限。