kubeconfig基础
场景 有多个集群 多个apiserver 要怎么管理 和 访问
kubeconfig文件拓扑
- users
- 是一个列表 a b c
- cluster
- cluster1
- cluster2
- contexts
- a@cluster1
- b@cluster1
- c@cluster2
kubeconfig是YAML格式的文件,用于存储身份认证信息,以便于客户端加载并认证到API Server
kubeconfig保存有认证到一至多个Kubernetes集群的相关配置信息,并允许管理员按需在各配置间灵活切换
- clusters:Kubernetes集群访问端点(API Server)列表
- users:认证到API Server的身份凭据列表
- contexts:将每一个user同可认证到的cluster建立关联的上下文列表
- current-context:当前默认使用的context
查看当前的配置信息
kubectl config view
客户端程序加载的kubeconfig文件的途径及次序
- --kubeconfig选项
- KUBECONFIG环境变量:其值是包含有kubeconfig文件的列表
- 默认路径:$HOME/.kube/config
创建kubeconfig文件(静态令牌用户)
step1 定义cluster
提供包括集群名称、API Server URL和信任的CA的证书相关的配置;clusters配置段中的各列表项名称需要惟一;
cd /root/.kube
kubectl config set-cluster kube-test --embed-certs=true --certificate-authority=/etc/kubernetes/pki/ca.crt --server="https://kubeapi.magedu.com:6443" --kubeconfig=/root/.kube/kubeusers.conf
step2 定义user
添加身份凭据,使用静态令牌文件认证的客户端提供令牌令牌即可
之前生成的token
8a6fb6.630f42379543bcb1,tom,1001,"kubeusers,kubeadmin"
e9854c.32327c5e30b5a2dc,tom,jerry,"kubeusers"
kubectl config set-credentials tom --token="8a6fb6.630f42379543bcb1" --kubeconfig=/root/.kube/kubeusers.conf
kubectl config view --kubeconfig=/root/.kube/kubeusers.conf
step3 定义context
为用户jerry的身份凭据与kube-test集群建立映射关系
kubectl config set-context tom@kube-test --cluster=kube-test --user=tom --kubeconfig=/root/.kube/kubeusers.conf
设定默认Current-Context
kubectl config use-context tom@kube-test --kubeconfig=/root/.kube/kubeusers.conf
测试
ca证书的配置方法
之前的操作 juejin.cn/post/729369…
定义user
kubectl config set-credentials mason --embed-certs=true --client-certificate=/etc/kubernetes/pki/mason.crt --client-key=/etc/kubernetes/pki/mason.key --kubeconfig=/root/.kube/kubeusers.conf
定义context
kubectl config set-context mason@kube-test --cluster=kube-test --user=mason --kubeconfig=/root/.kube/kubeusers.conf