手把手教你給 Kubernetes Dashboard 增加用戶名密碼認(rèn)證功能
儀表板是基于 Web 的 Kubernetes 用戶界面。您可以使用儀表板將容器化應(yīng)用程序部署到 Kubernetes 集群,對(duì)容器化應(yīng)用程序進(jìn)行故障排除,并管理集群本身及其伴隨資源。您可以使用儀表板來(lái)概述群集上運(yùn)行的應(yīng)用程序,以及創(chuàng)建或修改單個(gè) Kubernetes 資源。
通過(guò) yaml 文件默認(rèn)安裝完 k8s 集群和 Dashboard 服務(wù)之后,都是使用 token 或者 Kubeconfig 文件 來(lái)登錄的,這樣使用起來(lái)比較安全。但是如果我們部署的是測(cè)試或者實(shí)驗(yàn)環(huán)境的話,每次都要輸入一長(zhǎng)串的 token 還是很方便的。所以,這里我們介紹如何使用 用戶名和密碼 的方式來(lái)登錄 Dashboard 服務(wù)。
| 集群環(huán)境 | 集群版本 | 搭建方式 | dashboard 的版本 | 
|---|---|---|---|
| master | v1.20.4 | kubeadm | dashboard:v2.0.4 | 
| node01 | v1.20.4 | kubeadm | dashboard:v2.0.4 | 
| node02 | v1.20.4 | kubeadm | dashboard:v2.0.4 | 
創(chuàng)建用戶文件
- 格式:user、password、userID、"group1,group2"
 - 注意:userID 不可重復(fù)
 
- # 創(chuàng)建用戶名密碼配置文件
 - # 在所有的master節(jié)點(diǎn)配置用戶名密碼
 - $ echo 'admin,admin,1' | sudo tee /etc/kubernetes/pki/basic_auth_file
 
修改配置文件
- 將上述創(chuàng)建好的用戶名密碼文件添加到下述文件中
 
- # 配置修改
 - $ sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml
 - spec:
 - containers:
 - - command:
 - - kube-apiserver
 - - --advertise-address=192.168.30.30
 - - --basic-auth-file=/etc/kubernetes/pki/basic_auth_file
 - ......
 - volumeMounts:
 - – mountPath: /etc/kubernetes/basic_auth_file
 - name: basic-auth-file
 - readOnly: true
 - volumes:
 - – hostPath:
 - name: basic-auth-file
 - path: /etc/kubernetes/basic_auth_file
 
重啟 apiserver 服務(wù)
- 使剛才的修改生效
 
- # 重啟
 - $ kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
 - # 查看
 - $ kubectl get pod -n kube-system | grep apiserver
 - kube-apiserver-k8s-01 1/1 Running 0 24s
 - kube-apiserver-k8s-02 1/1 Running 0 44s
 - kube-apiserver-k8s-03 1/1 Running 0 50s
 
將用戶與權(quán)限綁定
- 創(chuàng)建集群 admin 角色綁定
 
- # 權(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
 - NAME ROLE AGE
 - login-on-dashboard-with-cluster-admin ClusterRole/cluster-admin 2m23s
 
開(kāi)啟 basic 配置
- 修改 kubernetes-dashboard.yaml 配置文件
 
- $ sudo vim kubernetes-dashboard.yaml
 - args:
 - - --auto-generate-certificates
 - - --namespace=kubernetes-dashboard
 - - --token-ttl=43200 # 過(guò)期秒數(shù)
 - - --authentication-mode=basic # 啟用basic登錄
 - # 更新
 - $ kubectl apply -f kubernetes-dashboard.yaml
 
登錄驗(yàn)證
- 使用用戶名和密碼登錄 Dashboard 服務(wù)
 
Dashboard 開(kāi)啟用戶名密碼登錄

















 
 
 










 
 
 
 