Kubernetes 集群搭建(三):使用dashboard用户界面(需要访问外网获取yaml)

发布于:2025-04-08 ⋅ 阅读:(15) ⋅ 点赞:(0)

(一)简介

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

在这里插入图片描述