之前访问k8s都是通过token进去dashboard,如下所示。但是现在希望通过kubectl访问k8s,所以还需要进一步的配置。
1. 安装kubectl命令行工具,配置环境变量,环境变量的值指向配置文件,配置文件可以有多个(我的配置文件有两个,如下所示)
2. 根据官方文档配置config:https://kubernetes.io/zh/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#%e5%87%86%e5%a4%87%e5%bc%80%e5%a7%8b
3. 配置好了之后,查看配置信息,没有配置的情况下是空的
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://192.168.1.164:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
4. 在集群配置时,默认会生成kubernetes-admin这个用户及相关公私钥和证书,证书信息保存在master节点的配置文件/etc/kubernetes/admin.conf中
kubectl config的配置信息中需要三个证书信息,都可以在admin.conf中找到,分别是:
certificate-authority-data
client-certificate-data
client-key-data