有奖捉虫:云通信与企业服务文档专题,速来> HOT
文档中心 > 容器服务 > 最佳实践 > 运维 > 使用 kubecm 管理多集群 kubeconfig

操作场景

Kubernetes 提供 Kubectl 命令行工具用于操作集群,Kubectl 使用 Kubeconfig 作为配置文件(默认路径为 ~/.kube/config),通过其配置多个集群的信息,并管理和操作多个集群。
通过 Kubectl 管理和操作容器服务 TKE 或 TKE Serverless 集群,需要在集群基本信息页面开启 APIServer 的外网访问或内网访问,获取 Kubeconfig (集群访问凭证)。如果需要使用 Kubectl 管理多个集群,通常做法是提取 Kubeconfig 中各个字段的内容,将其合并到 Kubectl 所在设备的 Kubeconfig 文件中,但该方式操作繁琐且容易出错。
借助 kubecm 工具,可以更简单高效的将多个集群访问凭证合并添加到 kubeconfig 中。本文将介绍如何利用 kubecm 实现多集群的 kubeconfig 高效管理。

前提条件

已在需要管理多集群的设备上安装 kubectl 命令行工具。

操作步骤

安装 kubecm

在管理多集群的设备上安装 Kubecm

获取集群访问凭证

创建集群后,请按照以下步骤获取集群访问凭证:
1. 登录 容器服务控制台,单击左侧导航栏中的集群
2. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的基本信息页面。
3. 在“基本信息”页面找到集群APIServer信息配置项,开启外网访问内网访问
4. 单击 Kubeconfig 右侧的下载即可。如下图所示:n



使用 Kubecm 添加访问凭证到 Kubeconfig

本文以集群访问凭证文件名 cls-l6whmzi3-config 为例,执行以下命令,使用 Kubecm 将访问凭证添加到 Kubeconfig 中(-n 可指定 context 名称)。示例如下:
kubecm add -f cls-l6whmzi3-config -n cd -c

查看集群列表

执行以下 kubecm ls 命令查看 kubeconfig 中的集群列表(星号标识的是当前操作的集群)。示例如下:
$ kubecm ls
+------------+------------+-----------------------+--------------------+-----------------------------------+-------------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+============+=======================+====================+===================================+===================+
| * | cd | cluster-chh6kgf9d9 | user-chh6kgf9d9 | https://cls-l6whmzi3.ccs.tence | default |
| | | | | nt-cloud.com | |
+------------+------------+-----------------------+--------------------+-----------------------------------+-------------------+
| | bj | cluster-6qaua96n | user-6qaua96n | https://cls-6qaua96n.ccs.tence | kube-system |
| | | | | nt-cloud.com | |
+------------+------------+-----------------------+--------------------+-----------------------------------+-------------------+

切换集群

执行以下 kubecm switch 命令可以交互式切换到其他集群。如下图所示:




移除集群

执行以下 kubecm delete 命令可以移除某个集群。示例如下:
$ kubecm delete bj
Context Delete:「bj」
「/Users/roc/.kube/config」 write successful!
+------------+---------+-----------------------+--------------------+-----------------------------------+--------------+
| CURRENT | NAME | CLUSTER | USER | SERVER | Namespace |
+============+=========+=======================+====================+===================================+==============+
| | cd | cluster-chh6kgf9d9 | user-chh6kgf9d9 | https://cls-l6whmzi3.ccs.tence | default |
| | | | | nt-cloud.com | |
+------------+---------+-----------------------+--------------------+-----------------------------------+--------------+

参考文档