Kubernetes 的全功能Web界面-Dashboard

Dashboard具体概念,请阅读官方文档:https://kubernetes.io/zh-cn/blog/2016/07/15/dashboard-web-interface-for-kubernetes/

安装部署Dashboard

官方项目地址

1
https://github.com/kubernetes/dashboard

下载配置文件并应用

1
2
3
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
# 下载无效请到项目地址手动下载
https://github.com/kubernetes/dashboard/releases?page=2

image-20221003180738875

应用资源配置

1
kubectl create -f recommended.yaml

查看创建的Pod

1
kubectl -n kubernetes-dashboard get pods

image-20221003180901120

安装部署Metrics Scraper

请阅读>>Kubernetes HPA监控

创建Ingress资源并应用

创建资源配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard-ingress
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: "dashboard.k8s.com"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: kubernetes-dashboard
port:
number: 443

应用配置

1
kubectl apply -f dashboard-ingress.yaml

关键参数解释

1
2
3
4
5
annotations: # 注解
kubernetes.io/ingress.class: "nginx" # 使用的是nginx类型的ingress
ingress.kubernetes.io/ssl-passthrough: "true" #S SL透传
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # 后端使用TLS协议
nginx.ingress.kubernetes.io/rewrite-target: / # URL重定向

访问网页测试

1
2
# 在windows、mac本地hosts配置域名解析
172.16.32.145 dashboard.k8s.com

image-20221003182118144

1
2
# 使用https协议访问dashboard.k8s.com
https://dashboard.k8s.com

image-20221003182224802

image-20221003182246714

创建管理员账户并应用

创建授权资源配置清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard

应用资源配置清单

1
kubectl create -f dashboard-admin.yaml

查看资源并获取token

1
2
3
4
# 查看dashboard相关资源
kubectl get pod -n kubernetes-dashboard -o wide
kubectl get svc -n kubernetes-dashboard
kubectl get secret -n kubernetes-dashboard

image-20221003183319525

复制Token到浏览器登录

1
2
# 获取管理员凭证
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')|grep "token:"|awk '{print $2}'

image-20221003183353937

image-20221003183712019

image-20221003183801276