K8S多集群切换
Kubeconfig 用途
kubectl 命令行工具通过 kubeconfig 文件的配置来选择集群以及集群API Server通信的所有信息。kubeconfig 文件用来保存关于集群用户、命名空间和身份验证机制的信息。默认情况下 kubectl 读取 $HOME/.kube/config 文件,也可以通过设置环境变量 KUBECONFIG 或者 --kubeconfig 指定其他的配置文件。
Kubeconfig 文件结构
kubeconfig
文件主要由下面几部分构成:
- 集群参数
- 用户参数
- 上下文参数
- 当前上下文
apiVersion: v1 kind: Config preferences: {} clusters: # 集群参数 - cluster: name: {cluster-name} users: # 用户参数 - name: {user-name} contexts: # 上下文参数 - context: cluster: {cluster-name} user: {user-name} name: kubernetes # 集群上下文名称 current-context: kubernetes # 当前上下文
kubeconfig 合并工具kubecm下载并安装
通过 kubecm
工具合并多个 kubeconfig
文件
项目地址 https://github.com/sunny0826/kubecm
Usage: kubecm [command] Available Commands: add Add KubeConfig to $HOME/.kube/config alias Generate alias for all contexts clear Clear lapsed context, cluster and user completion Generates bash/zsh completion scripts delete Delete the specified context from the kubeconfig help Help about any command ls List KubeConfig merge Merge the KubeConfig files in the specified directory namespace Switch or change namespace interactively rename Rename the contexts of kubeconfig switch Switch Kube Context interactively version Print version info
多个 kubeconfig 文件合并
把需要合并的 Kubeconfig 文件放到 all_kubeconfig 目录下,执行命令后会在当前路径下产生一个新的 kubeconfig 文件
配置文件的名称l就是切换时的默认切换名称选项
$ kubecm merge -f all_kubeconfig
选择“True”时会直接替换 $HOME/.kube/config
文件
多集群切换,光标上下选择切换
$ kubecm switch
通过 kubecm
工具能快速的把多个 kubeconfig 文件合并到一个 kubeconfig 文件中,并且也提供集群切换。而不需要再下载 kubectx
工具来切换集群
配置选项的名称重命名:
$ kubecm rename