Dashboard开启用户密码登录


仪表板是基于 WebKubernetes 用户界面。您可以使用仪表板将容器化应用程序部署到 Kubernetes 集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个 Kubernetes 资源。

Dashboard开启用户名密码登录


通过 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
  • 创建用户文件
    • 格式:userpassworduserID"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 服务

Dashboard开启用户名密码登录


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !