美文网首页
kubectl 通过配置文件添加上下文访问远程集群

kubectl 通过配置文件添加上下文访问远程集群

作者: 0neBean | 来源:发表于2019-09-26 15:17 被阅读0次

我使用了Minikube运行一个本地Kubernetes单节点集群用于开发测试,但是生产环境往往是多个节点组成的集群环境,我经常需要在本地Minikube和在线Kubernetes集群之间切换,后发现可以在kubectl 里可以添加多个环境,总结一下分几点信息:

  • 获取配置文件:

首先去到你需要添加的集群master节点上,获取集群的配置文件,kubectl就是通过这个文件来访问集群的:

 cat ~/.kube/config

内容如下:


将1,2,3的 value部分 反向base64还原,分别按顺序保存为 k8s-cluster.ca k8s.crt k8s.key,三个文件,反向base64的命令如下:
echo '${替换内容}' | base64 -d

另外集群的访问地址,即 server 字段,需要记录一下,后面会用到。

到此为止,准备工作结束。

  • 添加集群,用户,上下文:

# 添加集群 集群地址上一步有获取 ,需要指定ca文件,上一步有获取 
kubectl config set-cluster only-k8s --server https://192.168.146.150:6444  --certificate-authority=/usr/program/k8s-certs/k8s-cluster.ca

# 添加用户 需要指定crt,key文件,上一步有获取
kubectl config set-credentials kubernetes-admin     --client-certificate=/usr/program/k8s-certs/k8s.crt     --client-key=/usr/program/k8s-certs/k8s.key

# 指定一个上下文 我这里叫做 fat,随便你叫啥 关联刚才的用户
kubectl config set-context fat --cluster=only-k8s  --namespace=default --user=kubernetes-admin 

#激活这个上下文
kubectl config use-context fat 

到此为止 ok了,试验一下:

[root@localhost k8s-certs]# kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.1", GitCommit:"d647ddbd755faf07169599a625faf302ffc34458", GitTreeState:"clean", BuildDate:"2019-10-02T17:01:15Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.4", GitCommit:"67d2fcf276fcd9cf743ad4be9a9ef5828adc082f", GitTreeState:"clean", BuildDate:"2019-09-18T14:41:55Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}


P.S.

kubectl默认配置存储在 ~/.kube/config 中,我指向了默认的路径,你也可以用多个配置文件来分别存储集群信息,然后切换配置文件:

kubectl --kubeconfig=/Users/0neBean/.kube/config config view

相关文章

网友评论

      本文标题:kubectl 通过配置文件添加上下文访问远程集群

      本文链接:https://www.haomeiwen.com/subject/autwuctx.html