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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM