Dashboard介绍

  1. Dashboard 是基于网页的 Kubernetes 用户界面。
  2. 您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中
  3. ,也可以对容器应用排错,还能管理集群资源。
  4. 您可以使用 Dashboard 获取运行在集群中的应用的概览信息,
  5. 也可以创建或者修改 Kubernetes 资源(如 DeploymentJobDaemonSet 等等)。
  6. 例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

获取并修改Yaml文件

  1. 项目地址 https://github.com/kubernetes/dashboard/releases
  2. # wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
  3. master执行
  4. [root@master ~]# mkdir dashboard
  5. [root@master ~]# cd dashboard/
  6. # vim recommended.yaml
  7. kind: Service
  8. apiVersion: v1
  9. metadata:
  10. labels:
  11. k8s-app: kubernetes-dashboard
  12. name: kubernetes-dashboard
  13. namespace: kubernetes-dashboard
  14. spec:
  15. type: NodePort #新加此行
  16. ports:
  17. - port: 443
  18. nodePort 30001 #新加此行
  19. targetPort: 8443
  20. selector:
  21. k8s-app: kubernetes-dashboard
  22. 应用配置文件
  23. # kubectl apply -f recommended.yaml
  24. ############################################################################
  25. [root@master dashboard]# kubectl apply -f recommended.yaml
  26. namespace/kubernetes-dashboard created
  27. serviceaccount/kubernetes-dashboard created
  28. service/kubernetes-dashboard created
  29. secret/kubernetes-dashboard-certs created
  30. secret/kubernetes-dashboard-csrf created
  31. secret/kubernetes-dashboard-key-holder created
  32. configmap/kubernetes-dashboard-settings created
  33. role.rbac.authorization.k8s.io/kubernetes-dashboard created
  34. clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
  35. rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
  36. clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
  37. deployment.apps/kubernetes-dashboard created
  38. service/dashboard-metrics-scraper created
  39. deployment.apps/dashboard-metrics-scraper created
  40. ############################################################################
  41. 查看podservice
  42. -o wide 宽格式显示 -n 指定名称空间
  43. [root@master dashboard]# kubectl get pod -o wide -n kubernetes-dashboard
  44. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  45. dashboard-metrics-scraper-76585494d8-2czfj 1/1 Running 0 7m54s 10.244.2.3 node2 <none> <none>
  46. kubernetes-dashboard-5996555fd8-p8qgc 1/1 Running 0 7m54s 10.244.1.2 node1 <none> <none>
  47. [root@master dashboard]# kubectl get svc -o wide -n kubernetes-dashboard
  48. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
  49. dashboard-metrics-scraper ClusterIP 10.98.193.51 <none> 8000/TCP 8m24s k8s-app=dashboard-metrics-scraper
  50. kubernetes-dashboard NodePort 10.96.240.128 <none> 443:30001/TCP 8m33s k8s-app=kubernetes-dashboard

image.png

访问Dashboard

  1. 得使用火狐浏览器
  2. https://192.168.81.30:30001
  3. 接受风险并继续


image.png

创建一个dashboard用户

  1. master节点
  2. [root@master ~]# cd dashboard/
  3. # vim create-admin.yaml
  4. apiVersion: v1
  5. kind: ServiceAccount
  6. metadata:
  7. name: admin-user
  8. namespace: kubernetes-dashboard
  9. ---
  10. apiVersion: rbac.authorization.k8s.io/v1
  11. kind: ClusterRoleBinding
  12. metadata:
  13. name: admin-user
  14. roleRef:
  15. apiGroup: rbac.authorization.k8s.io
  16. kind: ClusterRole
  17. name: cluster-admin
  18. subjects:
  19. - kind: ServiceAccount
  20. name: admin-user
  21. namespace: kubernetes-dashboard
  22. [root@master dashboard]# kubectl apply -f create-admin.yaml
  23. 获取Token
  24. [root@master dashboard]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
  25. Name: admin-user-token-5vcp4
  26. Namespace: kubernetes-dashboard
  27. Labels: <none>
  28. Annotations: kubernetes.io/service-account.name: admin-user
  29. kubernetes.io/service-account.uid: 0137b407-a40b-4635-b26a-d53139688b5d
  30. Type: kubernetes.io/service-account-token
  31. Data
  32. ====
  33. ca.crt: 1025 bytes
  34. namespace: 20 bytes
  35. token: eyJhbGciOiJSUzI1NiIsImtpZCI6IkR6RWY1alg5MGwybzBuOEVJVGdCOF9XSklleUtaMFY3eTFWRzVrcTBvdFkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTV2Y3A0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwMTM3YjQwNy1hNDBiLTQ2MzUtYjI2YS1kNTMxMzk2ODhiNWQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.O33TppsQxjkha3QsHEFpUJpcggubFZSmGyXRNfRUaw_8d1xBUeiFKaG0lUHp4__Zorv5Hx_K5TQpgUV-bpQmG7hSxwgs4S77mTo2oWOE48c_wMqkRro2DCU1ef3D-aL6ChnGz_evGj8PHF-g7OPcN9oOKuRAD-fLJiccUBZFfc2Jbh_53QVKjbPYfGSyBMrhxnMuVaFajOneocSbfT7a-3D-gBLxPbMXvm3BKvSQjAUJjOh1HpSH5QC6e84QCI_cisxdy2OldzsrTdYFagGO1pbCJmyM0Sq6meYq5AJkcgfCgvgZYI_DycaqcznSBPeVmuaZ0UR0NMu4iR9-MBzcUw

image.png

登录dashboard

  1. https://192.168.81.30:30001
  2. 复制token
  3. eyJhbGciOiJSUzI1NiIsImtpZCI6IkR6RWY1alg5MGwybzBuOEVJVGdCOF9XSklleUtaMFY3eTFWRzVrcTBvdFkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTV2Y3A0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwMTM3YjQwNy1hNDBiLTQ2MzUtYjI2YS1kNTMxMzk2ODhiNWQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.O33TppsQxjkha3QsHEFpUJpcggubFZSmGyXRNfRUaw_8d1xBUeiFKaG0lUHp4__Zorv5Hx_K5TQpgUV-bpQmG7hSxwgs4S77mTo2oWOE48c_wMqkRro2DCU1ef3D-aL6ChnGz_evGj8PHF-g7OPcN9oOKuRAD-fLJiccUBZFfc2Jbh_53QVKjbPYfGSyBMrhxnMuVaFajOneocSbfT7a-3D-gBLxPbMXvm3BKvSQjAUJjOh1HpSH5QC6e84QCI_cisxdy2OldzsrTdYFagGO1pbCJmyM0Sq6meYq5AJkcgfCgvgZYI_DycaqcznSBPeVmuaZ0UR0NMu4iR9-MBzcUw
  4. sign in

image.png
image.png