(一)简介
K8s Dashboard是Kubernetes提供的一种基于Web的用户界面工具,用于可视化地管理和监控Kubernetes集群
主要功能:
资源查看与管理:
查看Kubernetes集群中的各种资源,如节点、Pod、服务、部署等。
对资源进行创建、更新、删除等操作,例如扩展部署、发起滚动更新、重新启动Pod或使用部署向导部署新的应用程序。实时状态监控:
显示关于集群和应用的实时状态信息,包括Pods、Deployments、Services等的运行状态。
查看容器的日志和事件,有助于快速定位问题。资源监控与度量:
提供了可视化的工具来查看集群的度量和监控数据,如CPU、内存和网络使用状况等。安全性与访问控制:
支持Kubernetes的RBAC(基于角色的访问控制),允许对不同用户的访问权限进行控制。
(二)安装前准备
官网建议通过helm安装,但是当前helm安装方式只能指定到版本release 7.11.1版本,故采用yaml方式进行安装
2.1 下载yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
配置NodePort: NodePort类型的 Service 适合用于开发和测试环境,允许外部流量直接访问集群内的服务。
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
nodePort: 30002 #添加内容
type: NodePort #添加内容
selector:
k8s-app: kubernetes-dashboard
注意要将yaml文件里的imagePullPolicy:Always 注掉,否则从国内拉取的镜像无法使用
2.2 准备相关镜像
kubernetesui/metrics-scraper:v1.0.8
kubernetesui/dashboard:v2.7.0
国内拉取方式
ctr -n k8s.io i pull -k docker.m.daocloud.io/kubernetesui/dashboard:v2.7.0
ctr -n k8s.io i pull -k docker.m.daocloud.io/kubernetesui/metrics-scraper:v1.0.8
重新标记视为原始镜像
ctr -n k8s.io images tag docker.m.daocloud.io/kubernetesui/dashboard:v2.7.0 docker.io/kubernetesui/dashboard:v2.7.0
ctr -n k8s.io images tag docker.m.daocloud.io/kubernetesui/metrics-scraper:v1.0.8 docker.io/kubernetesui/metrics-scraper:v1.0.8
(三)进行安装
kubectl apply -f recommended.yaml
检查pod状态
kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-658d97c59c-bx9mx 1/1 Running 0 14h
kube-system calico-node-k8wpd 1/1 Running 0 14h
kube-system calico-node-lchjc 1/1 Running 0 14h
kube-system calico-node-vdpqf 1/1 Running 0 14h
kube-system coredns-66f779496c-qhp6p 1/1 Running 0 17h
kube-system coredns-66f779496c-txxql 1/1 Running 0 17h
kube-system etcd-m1 1/1 Running 0 17h
kube-system kube-apiserver-m1 1/1 Running 0 17h
kube-system kube-controller-manager-m1 1/1 Running 0 17h
kube-system kube-proxy-5gg2p 1/1 Running 0 16h
kube-system kube-proxy-ctw2r 1/1 Running 0 16h
kube-system kube-proxy-zlbb7 1/1 Running 0 17h
kube-system kube-scheduler-m1 1/1 Running 0 17h
kubernetes-dashboard dashboard-metrics-scraper-5657497c4c-rn6cx 1/1 Running 0 4m27s
kubernetes-dashboard kubernetes-dashboard-5b749d9495-6lg7v 1/1 Running 0 4m27s
(四)创建用户
wget https://raw.githubusercontent.com/cby-chen/Kubernetes/main/yaml/dashboard-user.yaml
kubectl apply -f dashboard-user.yaml
创建token
kubectl -n kubernetes-dashboard create token admin-user
eyJhbGciOiJSUzI1NiIsImtpZCI6InphYTVNNHpQejBFelFQSzNfLS1wYVUzbmRRTUVYY3BWeEdKbWxGRklFZlUifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzQ0MDExNjAyLCJpYXQiOjE3NDQwMDgwMDIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiMmU0NDZlZTktMjdhNC00NWFjLWFjNmMtNmMyMjQ3MWZjZTdhIn19LCJuYmYiOjE3NDQwMDgwMDIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.NkvJMMIDwWTpq3OnWjld7fEin9DUvXP8-wdmPHgYjKSBbV8qM7BKahZRk0H_pTPurbo_kXEB7_TLnv1Hl_S6eH90DAdPSLCW3px4uSSvLFU0tZ9rYRQWZa6BfMnQTz7KWzAllKq4Is31UFKEO53KjAVu0cRPhIQXPeSF2N0uhrt-JPl_wgk3bvdTxJsBRvSKUVQ_khdNLI8GMAxj7qYIDd8gCYbbJi5Ct62pNPwjnDQhBg9wzAejKJsPHspIcpNxPSIJfWrDASDuBBkF0djT7aD8v1fQ7QCYkJ9LN6PFj8g7aEglkioF_6TVbQDsK5grFfhZC323JwZhMC34JJhJYg
(五)网页访问
通过暴露的端口30002访问,输入token即可进入管理页面
https://localhost:30002