天天看點

使用者名密碼方式登入Kubernetes-Dashboard

背景:預設安裝完k8s叢集和Dashboard之後都是使用token登入的,這樣使用起來不是很友善,每次登入還要找到token才能登入。

本片文章使用使用者和密碼方式進行登入!

環境介紹

叢集環境         叢集版本         搭建方式         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

注意事項:

如果你的環境内不止一個master,那basic-auth-file這個檔案要在每一個master上生成,并保證路徑及内容和其他master一緻!并且每個master都要修改kube-apiserver.yaml檔案!

建立使用者檔案

解析:

user,password,userID

userID不可重複

echo ‘admin,admin,1’ > /etc/kubernetes/pki/basic_auth_file

修改配置

vim /etc/kubernetes/manifests/kube-apiserver.yaml

# 增加如下參數

– –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

将使用者與權限綁定

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

驗證

結束語

以上均為kubeadm方式部署的叢集。如果是二進制方式部署的叢集,則不用在kubernetes-dashboard.yaml檔案中開啟authentication-mode=basic

basic驗證方式存在一個問題,就是使用者名和密碼要保持一緻,如果使用者名和密碼不一緻,登陸驗證的時候會提示Unauthorized (401): Invalid credentials provided(不要問我為什麼,這個問題我也不知道咋解決)

另外/etc/kubernetes/pki/basic_auth_file檔案不會熱更新,每次添加新使用者之後都需要手動重新開機一下api-server一般來說,隻有一個使用者就夠了