仪表板是基于
Web
的Kubernetes
用户界面。您可以使用仪表板将容器化应用程序部署到Kubernetes
集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个Kubernetes
资源。
通过 yaml
文件默认安装完 k8s
集群和 Dashboard
服务之后,都是使用 token
或者 Kubeconfig
文件 来登录的,这样使用起来比较安全。但是如果我们部署的是测试或者实验环境的话,每次都要输入一长串的 token
还是很方便的。所以,这里我们介绍如何使用 用户名和密码 的方式来登录 Dashboard
服务。
集群环境 | 集群版本 | 搭建方式 | 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 |
- 创建用户文件
- 格式:
user
、password
、userID
、"group1,group2"
- 注意:
userID
不可重复
- 格式:
# 创建用户名密码配置文件
# 在所有的master节点配置用户名密码
$ echo 'admin,admin,1' | sudo tee /etc/kubernetes/pki/basic_auth_file
- 修改配置文件
- 将上述创建好的用户名密码文件添加到下述文件中
# 配置修改
$ 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 服务
- 使刚才的修改生效
# 重启
$ 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
- 将用户与权限绑定
- 创建集群
admin
角色绑定
- 创建集群
# 权限绑定
$ 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
- 开启 basic 配置
- 修改
kubernetes-dashboard.yaml
配置文件
- 修改
$ sudo vim kubernetes-dashboard.yaml
args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --token-ttl=43200 # 过期秒数
- --authentication-mode=basic # 启用basic登录
# 更新
$ kubectl apply -f kubernetes-dashboard.yaml
- 登录验证
- 使用用户名和密码登录
Dashboard
服务
- 使用用户名和密码登录