接入 Amazon EKS 集群
支持将已部署的 Amazon EKS(Amazon Elastic Kubernetes Service)集群接入平台统一管理。
前提条件
-
集群上 Kubernetes 版本和组件的满足 接入公有云集群版本要求 。
-
确保该集群与 global 集群网络互通,您可参考以下步骤配置网络:
-
若接入集群可以正常访问平台访问地址:则无需进行网络配置。
-
若接入集群无法正常访问平台访问地址:您必须为平台添加域名,并将域名解析至平台访问地址,根据实际场景配置域名解析(内网和公网),在 更新平台参数 页面,将域名添加至 平台其他访问地址。
注意:被接入集群接入成功后,在 global 集群 master 节点修改对应集群 cluster 资源,增加 annotation:
cpaas.io/platform-url
:<平台的域名地址,例如:https://www.domain.cn>
。
-
-
您需准备包含平台组件镜像的镜像仓库,可以为 global 集群内置镜像仓库或第三方镜像仓库,并且仓库地址需使用域名访问,证书需要为公共认证机构认证的证书。
提示:
-
如需从第三方镜像仓库拉取 EKS 集群所需的平台组件镜像,实施方案可联系技术支持人员获取。
-
如需使用平台默认的镜像仓库拉取 EKS 集群所需的平台组件镜像,请确保 EKS 集群可以正常访问平台默认镜像仓库,若无法访问,可参考 配置平台默认镜像仓库以支持业务集群的外网访问 进行配置。
-
安装配置 AWS CLI
-
由于 AWS EKS 没有 webshell,所以需要使用 awscli 维护集群,请连接 AWS 集群的节点并使用如下命令安装。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
-
预期验证:执行如下命令得到回显时,说明 awscli 安装成功。
aws version
-
在安装 awscli 节点使用如下命令,配置 awkcli 访问凭据。
aws configure
-
Access key ID:访问密钥 ID 在创建 IAM 用户时获取。
-
Secret access key:访问密钥在创建 IAM 用户时获取。
-
Region name:区域咨询你的系统管理员,格式为 cn-north-1。
-
Format:输入格式通常为 json 或者 yaml。
配置示例如下:
AWS Access Key ID [****************KUIR]: AKIAR3sHDSZEQT7GKUIR AWS Secret Access Key [****************btvs]: N/r17D2DK+uvHktADjcCUsG7Wm3pKMVY5c9Lbtvs Default region name [cn-north-1]: cn-north-1 Default output format [json]: json
-
-
预期验证:配置成功后可以使用以下命令获取集群名称。
aws eks list-clusters
安装配置 kubelet
-
如果机器节点没有 kubelet 命令,可以根据 AWS EKS 版本选择对应 kubelet 安装。 参考AWS官网文档 。
提示:
-
默认情况下,生成的配置文件会在您的主目录中的默认 kubeconfig 路径 ( .kube) 中创建,或者与该位置的现有 config 文件合并。
-
您可以使用
--kubeconfig
选项指定另一个路径。 -
您可以指定 IAM 角色 ARN, 在您发出命令
--role-arn
时使用用于身份验证的选项。否则,将使用您的默认 AWS CLI 或开发工具包凭证链中的 IAM 实体。 -
您可以通过运行
aws sts get-caller-identity
命令来查看您的默认 AWS CLI 或开发工具包身份。
-
-
执行如下命令生成 kubeconfig 文件,变量
cn-north-1
需替换为机器区域,xxx-eks
替换集群名称。aws eks --region <cn-north-1 > update-kubeconfig --name <xxx-eks>
-
预期验证:配置成功后可以使用以下命令获取集群节点列表。
kubectl get node
-
集群的 KubeConfig 文件中包含了访问集群所需的配置信息,例如:集群地址、CA 证书、认证信息等。根据实际的网络情况和集群配置,将集群控制节点上的
.kube/config
文件拷贝至本地,准备在平台图形化界面中解析该文件,可参考 scp 命令:scp -r root@<集群控制节点 IP>:~/.kube/config <本地地址>
获取集群信息
参考 获取集群令牌、访问地址、CA 证书 获取集群信息,为接入集群做准备。
接入集群
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击 接入集群。
-
参照以下说明,配置相关参数。
参数 说明 镜像仓库 存储集群所需平台组件镜像的仓库。
- 平台默认:部署 global 时配置的 平台部署 镜像仓库。
- 外部:提前搭建的外部镜像仓库。需输入访问镜像仓库的 私有镜像仓库地址、端口、用户名、密码。集群信息 提示:可手动填写或上传 KubeConfig 文件由平台自动解析并填写。
解析 KubeConfig 文件:上传已获取的 KubeConfig 文件后,平台会自动解析并填写 集群信息,您可修改自动填写的信息。
集群地址:集群对外暴露 API Server 的访问地址,用于平台访问集群的 API Server。
CA 证书:集群的 CA 证书。
注意:手动输入时,需输入经过 Base64 解码的证书。
认证方式:访问集群的认证方式,需要使用具备 集群管理权限 的 令牌(Token)或 证书认证(客户端证书及秘钥) 进行认证。 -
单击 检查连通性 以检查与接入集群的网络连通性并自动识别接入集群的类型,集群类型将以表单右上角角标的形式展现。
-
连通性检查通过后,单击 接入,并确认。
提示:
- 单击处于 接入中 状态的集群右侧的
图标,可在弹出的 执行进度 对话框中,查看集群的执行进度(status.conditions)。
- 集群接入成功后,在集群列表可查看集群的关键信息,集群的状态显示为正常,并可执行集群相关操作。
- 单击处于 接入中 状态的集群右侧的
后续操作
部署插件
集群接入成功后,您可前往 插件管理 选择为集群部署必须的插件,包括监控组件、日志采集组件、日志存储组件等。
提示:部署 Prometheus 监控组件时,您需要在 EKS 集群中的 nodegroup 的安全组开放 11780 端口。
纳管集群下命名空间
接入集群后,您可通过基于集群 创建项目 ,或通过 添加项目关联集群 的方式将集群添加至已有项目,可将新接入的集群关联至项目。
进而,通过 导入命名空间 操作,将集群下已有的 Kubernetes 命名空间纳入到平台的项目下进行管理。
常见问题
接入集群后添加节点按钮置灰,如何添加节点?
不支持在平台界面添加节点,请于联系集群供应商添加。
接入集群的证书管理功能支持哪些证书?
-
Kubernetes 证书:所有接入集群仅支持在平台证书管理界面查看 APIServer 证书信息,不支持查看其他 Kubernetes 证书且不支持自动轮换。
-
平台组件证书:所有接入集群可在平台证书管理界面查看平台组件证书信息且支持自动轮换。
还有哪些功能不支持接入的 Amazon EKS 集群?
-
不支持获取审计数据。
-
不支持 ETCD、Scheduler、Controller Manager 相关监控信息,支持 APIServer 部分监控图表。
-
不支持获取除 Kubernetes APIServer 证书外的集群证书相关信息。