kubeconfig配置

它是什么

k8s集群對(duì)外是以API的方式訪問,連接到集群至少你需要幾個(gè)信息:

  • api地址
  • ca證書
  • 用戶token

實(shí)際很多客戶端,比如kubectl,helm,以及比如官方的client-go類庫都會(huì)默認(rèn)支持kubeconfig文件的方式

官方的解釋:A file that is used to configure access to clusters is called a kubeconfig file. This is a generic way of referring to configuration files. It does not mean that there is a file named kubeconfig.

就是文件叫什么名字都無所謂,就是一個(gè)存儲(chǔ)在文件內(nèi)的一個(gè)配置信息罷了

什么時(shí)候需要配置這個(gè)東西

  • 你想遠(yuǎn)程連接某個(gè)或者多個(gè)k8s集群
  • CI構(gòu)建流程里想通過kubectl命令直接deploy你的app到集群里
  • ...

各種你想和k8s集群打交道的時(shí)候都需要先考慮配置這個(gè)

它的位置

  • 優(yōu)先從 --kubeconfig 里指定的位置讀取
  • 然后檢查是否存在環(huán)境變量KUBECONFIG是否有值
  • 最后默認(rèn)從$HOME/.kube/config

如何配置

# 集群信息
kubectl config set-cluster xx-cluster --server="$KUBE_URL" --certificate-authority="/path/xxca.pem"
# 用戶信息
kubectl config set-credentials xx-user --token="$KUBE_TOKEN" --certificate-authority="/path/xxca.pem"
# 配置context
kubectl config set-context xx-context  --cluster=xx-cluster --user=xx-user --namespace="$KUBE_NAMESPACE"
# 切換具體的context
kubectl config use-context xx-context

配置里的xx*實(shí)際操作需要替換成自己喜歡的名字,以及集群的API地址,用戶的token,證書三個(gè)關(guān)鍵信息

示例配置

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /path/xxca.pem
    server: https://k8s-api.xxx.com
  name: xx-cluster
contexts:
- context:
    cluster: xx-cluster
    namespace: xx-namespace
    user: xx-user
  name: xx-context
current-context: xx-context
kind: Config
preferences: {}
users:
- name: xx-user
  user:
    token: xxxxxxxxxxxxxxxxxxxxxxxxxxxx

一般都是使用kubectl config生成配置,然后kubectl version測試下是否可以連接到集群

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

官方相關(guān)文檔

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容