背景:默認(rèn)安裝完k8s集群和Dashboard之后都是使用token登錄的,這樣使用起來不是很方便,每次登錄還要找到token才能登錄。
本片文章使用用戶和密碼方式進(jìn)行登錄!
環(huán)境介紹
集群環(huán)境 | 集群版本 | 搭建方式 | dashboard的版本 |
---|---|---|---|
master | v1.16.8 | kubeadm | kubernetesui_dashboard:v2.0.0-rc6 |
node1 | v1.16.8 | kubeadm | kubernetesui_dashboard:v2.0.0-rc6 |
node2 | v1.16.8 | kubeadm | kubernetesui_dashboard:v2.0.0-rc6 |
注意事項(xiàng):
如果你的環(huán)境內(nèi)不止一個(gè)master,那basic-auth-file這個(gè)文件要在每一個(gè)master上生成,并保證路徑及內(nèi)容和其他master一致!并且每個(gè)master都要修改kube-apiserver.yaml文件!
- 創(chuàng)建用戶文件
- 解析:
user,password,userID
userID不可重復(fù)
- 解析:
echo 'admin,admin,1' > /etc/kubernetes/pki/basic_auth_file
- 修改配置
vim /etc/kubernetes/manifests/kube-apiserver.yaml
# 增加如下參數(shù)
- --basic-auth-file=/etc/kubernetes/pki/basic_auth_file
- 重啟api-server
[root@master manifests]# pwd
/etc/kubernetes/manifests
[root@master manifests]# mv ./kube-apiserver.yaml ../
[root@master manifests]# mv ../kube-apiserver.yaml ./
- 更新配置
kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
- 將用戶與權(quán)限綁定
kubectl create clusterrolebinding login-on-dashboard-with-cluster-admin --clusterrole=cluster-admin --user=admin
- 查看綁定
kubectl get clusterrolebinding login-on-dashboard-with-cluster-admin
- 修改kubernetes-dashboard.yaml
- 開啟authentication-mode=basic配置
args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --token-ttl=43200
- --authentication-mode=basic
- 更新kubernetes-dashboard
kubectl apply -f kubernetes-dashboard.yaml
-
驗(yàn)證
結(jié)束語
以上均為kubeadm方式部署的集群。如果是二進(jìn)制方式部署的集群,則不用在kubernetes-dashboard.yaml文件中開啟authentication-mode=basic
basic驗(yàn)證方式存在一個(gè)問題,就是用戶名和密碼要保持一致,如果用戶名和密碼不一致,登陸驗(yàn)證的時(shí)候會提示Unauthorized (401): Invalid credentials provided
(不要問我為什么,這個(gè)問題我也不知道咋解決)
另外/etc/kubernetes/pki/basic_auth_file
文件不會熱更新,每次添加新用戶之后都需要手動重啟一下api-server
一般來說,只有一個(gè)用戶就夠了