Kubeconfig文件自动合并-实现K8S多集群切换
前言
随着 Kubernetes 越来越流行,不管大公司还是小公司都往 Kubernetes 迁移,每个公司最少有两套集群(测试和生产),但是多个集群就有多个 Kubeconfig 用户授权文件。虽然官方文档中有介绍多个Kubeconfig 文件合并成一个 Kubeconfig,但是对于一些新手来说,看得不是很明白。
本文介绍 Kubeconfig 文件结构,并推荐一个工具自动合并Kubeconfig。
Kubeconfig 用途
kubectl 命令行工具通过 kubeconfig 文件的配置来选择集群以及集群API Server通信的所有信息。kubeconfig 文件用来保存关于集群用户、命名空间和身份验证机制的信息。默认情况下 kubectl 读取 $HOME/.kube/config 文件,也可以通过设置环境变量 KUBECONFIG 或者 --kubeconfig 指定其他的配置文件。
Kubeconfig 文件结构
kubeconfig 文件主要由下面几部分构成:
- 集群参数
- 用户参数
- 上下文参数
- 当前上下文
1 | apiVersion: v1 |
kubeconfig 合并
通过 kubecm 工具合并多个 kubeconfig 文件
kubecm 安装
1 | $ export VERSION=v0.8.0 |
多个 kubeconfig 文件合并
把需要合并的 Kubeconfig 文件放到 all_kubeconfig 目录下,执行命令后会在当前路径下产生一个新的 kubeconfig 文件
1 | $ kubecm merge -f all_kubeconfig |
直接把新生成的 kubeconfig 文件替换 $HOME/.kube/config 文件
1 | $ kubecm merge -f all_kubeconfig -c |
多集群切换
1 | # 集群切换命令 |
小结
通过 kubecm 工具能快速的把多个 kubeconfig 文件合并到一个 kubeconfig 文件中,并且也提供集群切换。而不需要再下载 kubectx工具来切换集群。