kubeconfig¶
主要包括3种信息
- 集群信息 定义集群入口和CA
- 用户信息 定义用户凭证,常用的是证书和token
- context信息 定义用户与集群的关联,也就是用什么用户访问那个集群
apiVersion: v1
kind: Config
preferences: {}
#可定义多个集群
clusters:
- cluster:
#base64编码后的集群ca
certificate-authority-data:
#也可以使用集群ca文件路径
certificate-authority:
#集群入口
server: https://my.cluster:6443
#cluster name,在context中引用
name: kubernetes
#context就是cluster和user的组合,可定义多个
contexts:
#当前使用的context name
current-context: default
- context:
#引用cluster name
cluster: kubernetes
#引用user name
user: dev01
#定义context name
name: dev01@kubernetes
#可定义多个user
users:
- name: dev01
user:
#嵌入token,这里不使用base64编码
token:
#使用token文件路径
tokenFile:
#嵌入base64编码后的客户端证书
client-certificate-data:
#嵌入base64编码后的客户端证书密钥
client-key-data:
#使用客户端证书文件路径
client-certificate:
#使用客户端证书密钥文件路径
client-key:
kubectl config¶
设置集群¶
#创建或修改集群
kubectl config set-cluster NAME --server=https://k8s:6443 --certificate-authority=path/to/ca
#不验证群集ca
--insecure-skip-tls-verify=true
#指定tls hostname
--tls-server-name=example.com
#嵌入ca证书
--embed-certs=true
#删除集群
kubectl config delete-cluster NAME
设置用户¶
#创建或修改user
kubectl config set-credentials NAME
#客户端cert/key
--client-certificate=path/to/certfile
--client-key=path/to/keyfile
#是否嵌入cert/key
--embed-certs=true
#使用token
--token=bearer_token
设置context¶
#查看当前context
kubectl config current-context
#查看指定的context
kubectl config get-context NAME
#切换当前context
kubectl config use NAME
kubectl config use-context NAME
kubectl config set current-context NAME
#重命名context
kubectl config rename-context NAME new-NAME
#创建或修改context
kubectl config set-context [NAME | --current]
--cluster=cluster_nickname
--user=user_nickname
#删除context
kubectl config delete-context NAME