美文网首页
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