kubeasz/docs/guide/dashboard.md

3.6 KiB
Raw Blame History

dashboard

本文档基于 dashboard 2.2 版本k8s 1.22 版本,因 dashboard 1.7 以后默认开启了自带的登录验证机制,因此不同版本登录有差异:

  • 旧版(<= 1.6建议通过apiserver访问直接通过apiserver 认证授权机制去控制 dashboard权限详见旧版文档
  • 新版(>= 1.7可以使用自带的登录界面使用不同Service Account Tokens 去控制访问 dashboard的权限

部署

参考 https://github.com/kubernetes/dashboard

  • 增加了通过api-server方式访问dashboard
  • 增加了NodePort方式暴露服务,这样集群外部可以使用 https://NodeIP:NodePort (注意是https不是http区别于1.6.3版本) 直接访问 dashboard。

安装部署

# ezctl 集成部署组件xxxx 代表集群部署名
# dashboard 部署文件位于 /etc/kubeasz/clusters/xxxx/yml/dashboard/ 目录
./ezctl setup xxxx 07

验证部署

# 查看pod 运行状态
kubectl get pod -n kube-system | grep dashboard
dashboard-metrics-scraper-856586f554-l6bf4   1/1     Running   0          35m
kubernetes-dashboard-698d4c759b-67gzg        1/1     Running   0          35m

# 查看dashboard service
kubectl get svc -n kube-system|grep dashboard
kubernetes-dashboard   NodePort    10.68.219.38   <none>        443:24108/TCP                   53s

# 查看pod 运行日志
kubectl logs -n kube-system kubernetes-dashboard-698d4c759b-67gzg

登陆

因为dashboard 作为k8s 原生UI能够展示各种资源信息甚至可以有修改、增加、删除权限所以有必要对访问进行认证和控制为演示方便这里使用 https://NodeIP:NodePort 方式访问 dashboard支持两种登录方式Kubeconfig、令牌(Token)

注意: 使用chrome浏览器访问 https://NodeIP:NodePort 可能提示安全风险无法访问可以换firefox浏览器设置安全例外继续访问。

  • Token令牌方式登录admin

选择 Token 方式登录复制下面输出的admin token 字段到输入框

# 获取 Bearer Token找到输出中 token: 开头的后面部分
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
  • Token令牌方式登录只读

选择 Token 方式登录复制下面输出的read token 字段到输入框

# 获取 Bearer Token找到输出中 token: 开头的后面部分
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep read-user | awk '{print $1}')
  • Kubeconfig登录admin Admin kubeconfig文件默认位置/root/.kube/config该文件中默认没有token字段使用Kubeconfig方式登录还需要将token追加到该文件中完整的文件格式如下
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdxxxxxxxxxxxxxx
    server: https://192.168.1.2:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: admin
  name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRxxxxxxxxxxx
    client-key-data: LS0tLS1CRUdJTxxxxxxxxxxxxxx
    token: eyJhbGcixxxxxxxxxxxxxxxx

参考