美文网首页
kubeconfig配置

kubeconfig配置

作者: 疯子92 | 来源:发表于2019-08-12 17:38 被阅读0次

    它是什么

    k8s集群对外是以API的方式访问,连接到集群至少你需要几个信息:

    • api地址
    • ca证书
    • 用户token

    实际很多客户端,比如kubectl,helm,以及比如官方的client-go类库都会默认支持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.

    就是文件叫什么名字都无所谓,就是一个存储在文件内的一个配置信息罢了

    什么时候需要配置这个东西

    • 你想远程连接某个或者多个k8s集群
    • CI构建流程里想通过kubectl命令直接deploy你的app到集群里
    • ...

    各种你想和k8s集群打交道的时候都需要先考虑配置这个

    它的位置

    • 优先从 --kubeconfig 里指定的位置读取
    • 然后检查是否存在环境变量KUBECONFIG是否有值
    • 最后默认从$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*实际操作需要替换成自己喜欢的名字,以及集群的API地址,用户的token,证书三个关键信息

    示例配置

    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"}
    

    官方相关文档

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

    相关文章

      网友评论

          本文标题:kubeconfig配置

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