Kubernetes 提供 Kubectl 命令行工具用于操作集群,Kubectl 使用 Kubeconfig 作为配置文件(默认路径为 ~/.kube/config
),通过其配置多个集群的信息,并管理和操作多个集群。
通过 Kubectl 管理和操作容器服务 TKE 或 TKE Serverless 集群,需要在集群基本信息页面开启 APIServer 的外网访问或内网访问,获取 Kubeconfig (集群访问凭证)。如果需要使用 Kubectl 管理多个集群,通常做法是提取 Kubeconfig 中各个字段的内容,将其合并到 Kubectl 所在设备的 Kubeconfig 文件中,但该方式操作繁琐且容易出错。
借助 kubecm 工具,可以更简单高效的将多个集群访问凭证合并添加到 kubeconfig 中。本文将介绍如何利用 kubecm 实现多集群的 kubeconfig 高效管理。
在管理多集群的设备上安装 Kubecm。
创建集群后,请按照以下步骤获取集群访问凭证:
本文以集群访问凭证文件名 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 | |
+------------+---------+-----------------------+--------------------+-----------------------------------+--------------+
本页内容是否解决了您的问题?