1. 程式人生 > 實用技巧 >K8S多叢集切換

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

通過kubecm工具能快速的把多個 kubeconfig 檔案合併到一個 kubeconfig 檔案中,並且也提供叢集切換。而不需要再下載kubectx

工具來切換叢集。

https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

https://github.com/sunny0826/kubecm