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
工具合并多个 kubeconfig
文件
项目地址 https://github.com/sunny0826/kubecm
kubecm 安装
$ export VERSION=v0.8.0 # linux x86_64 安装包 $ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Linux_x86_64.tar.gz # macos 安装包 $ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Darwin_x86_64.tar.gz # windows 安装包 $ curl -Lo kubecm.tar.gz https://github.com/sunny0826/kubecm/releases/download/v${VERSION}/kubecm_${VERSION}_Windows_x86_64.tar.gz # # linux & macos 安装 $ tar -zxvf kubecm.tar.gz kubecm $ cd kubecm $ sudo mv kubecm /usr/local/bin/ # windows 安装 # Unzip kubecm.tar.gz # Add the binary in to your $PATH
多个 kubeconfig 文件合并
把需要合并的 Kubeconfig 文件放到 all_kubeconfig 目录下,执行命令后会在当前路径下产生一个新的 kubeconfig 文件
$ kubecm merge -f all_kubeconfig
直接把新生成的 kubeconfig 文件替换 $HOME/.kube/config
文件
$ kubecm merge -f all_kubeconfig -c$ kubecm merge -f all_kubeconfig -c
多集群切换
# 集群切换命令 $ kubecm switch Use the arrow keys to navigate: ↓ ↑ → ← and / toggles search Select Kube Context aliyun_prod-config(*) bjcs_test-config ↓ vnet_prod-config
通过 kubecm
工具能快速的把多个 kubeconfig 文件合并到一个 kubeconfig 文件中,并且也提供集群切换。而不需要再下载 kubectx
工具来切换集群。
切换namespace
# kubecm ns Search: test Select Namespace: test test1
https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/
https://github.com/sunny0826/kubecm