k8s–基础–23.6–认证-授权-准入控制–通过kubeconfig登陆dashboard
1、介绍
- 把token令牌封装成kubeconfig,通过kubeconfig登陆dashboard
2、创建一个只能管理指定名称空间的kubeconfig文件
以下步骤在k8s的master节点操作
2.1、在 zhoufei 命名空间创建一个 zhoufei 的serviceaccount账户
# 创建zhoufei命名空间
kubectl create namespace zhoufei
# 创建serviceaccount账户:zhoufei-admin
kubectl create serviceaccount zhoufei-admin -n zhoufei
2.2、把zhoufei用户做rolebingding绑定
kubectl create rolebinding zhoufei-admin-rolebinding -n zhoufei --clusterrole=cluster-admin --serviceaccount=zhoufei:zhoufei-admin
2.3、创建kubeconfig文件
# 进入目录
cd /etc/kubernetes/pki
kubectl config set-cluster kubernetes --certificate-authority=./ca.crt --server="https://192.168.187.154:6443" --embed-certs=true --kubeconfig=/root/zhoufei-admin.conf
2.3.1、config
表示创建kubeconfig文件
2.3.2、set-cluster kubernetes
表示设置集群的名字为kubernetes
2.3.3、–certificate-authority=./ca.crt
- 使用的CA证书
- CA证书对应文件的路径
2.3.4、–embed-certs=true
启动CA认证
2.3.5、server=“https://192.168.187.154:6443”
master地址
2.3.6、–kubeconfig=/root/zhoufei-admin.conf
kubeconfig文件的保存路径
2.4、创建credentials时需要使用上面我们创建的token信息
kubectl get secret -n zhoufei
# 获取token
DEF_NS_ADMIN_TOKEN=$(kubectl get secret zhoufei-admin-token-gz57x -n zhoufei -o jsonpath={.data.token}|base64 -d)
2.4.1、kubectl get secret zhoufei-admin-token-gz57x -n zhoufei
获取名称为zhoufei-admin-token-gz57x的secret
2.4.2、jsonpath={.data.token}|base64 -d)
将zhoufei-admin-token-gz57x转为json,并获取json中的token,并将token按照base64解密
2.5、设置kubeconfig文件中的token,也就是credentials
kubectl config set-credentials zhoufei --token=$DEF_NS_ADMIN_TOKEN --kubeconfig=/root/zhoufei-admin.conf
2.6、设置kubeconfig文件中的context
kubectl config set-context zhoufei@kubernetes --cluster=kubernetes --user=zhoufei --kubeconfig=/root/zhoufei-admin.conf
2.7、切换context的current-context是zhoufei@kubernetes
kubectl config use-context zhoufei@kubernetes --kubeconfig=/root/zhoufei-admin.conf
2.8、查看/root/zhoufei-admin.conf
上面就是刚刚我们设置的内容
2.9、把刚才的kubeconfig文件zhoufei-admin.conf复制到桌面
浏览器访问时使用kubeconfig认证,把刚才的zhoufei-admin.conf导入到web界面,那么就可以登陆了
3、创建一个能管理所有名称空间的kubeconfig文件
参考 2