【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面

文章目录

  • [K8S Dashboard 可视化](#K8S Dashboard 可视化)
    • [一、部署 Dashboard](#一、部署 Dashboard)
      • [1. 下载部署清单](#1. 下载部署清单)
      • [2. 修改 Service 暴露方式](#2. 修改 Service 暴露方式)
      • [3. 应用配置](#3. 应用配置)
      • [4. 检查 Pod 状态](#4. 检查 Pod 状态)
    • [二、访问 Dashboard](#二、访问 Dashboard)
      • [1. 查看 Service 暴露端口](#1. 查看 Service 暴露端口)
      • [2. 打开登录页](#2. 打开登录页)
    • 三、创建访问令牌(Token)
      • [1. 配置管理员账户](#1. 配置管理员账户)
      • [2. 应用配置](#2. 应用配置)
      • [3. 获取 Token](#3. 获取 Token)
    • [四、登录 Dashboard](#四、登录 Dashboard)

K8S Dashboard 可视化

通过 NodePort 方式部署 Kubernetes Dashboard,并创建带 cluster-admin 权限的 Token 登录。

整体流程:下载部署清单 → 修改 Service 为 NodePort → 应用配置 → 检查 Pod / Service → 创建管理员 Token → 登录 Dashboard。

以下命令均在 master 节点执行。

一、部署 Dashboard

1. 下载部署清单

bash 复制代码
[root@master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml

recommended.yaml 是官方推荐的一体化部署文件,包含 ServiceAccount、Deployment、Service、RBAC 等资源。

2. 修改 Service 暴露方式

bash 复制代码
[root@master ~]# vim recommended.yaml

从第 32 行开始,将 kubernetes-dashboard 这个 Service 改为 NodePort,并指定 30001 端口:

yaml 复制代码
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001        # 添加
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort             # 添加

3. 应用配置

bash 复制代码
[root@master ~]# kubectl apply -f recommended.yaml

4. 检查 Pod 状态

bash 复制代码
[root@master ~]# kubectl get pods -n kubernetes-dashboard

输出:

text 复制代码
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-5657497c4c-jpc9d   1/1     Running   0          2m29s
kubernetes-dashboard-746fbfd67c-nm5c7        1/1     Running   0          2m29s

两个 Pod 均为 Running,说明 Dashboard 部署成功。

二、访问 Dashboard

1. 查看 Service 暴露端口

bash 复制代码
[root@master ~]# kubectl get svc -n kubernetes-dashboard

输出:

text 复制代码
NAME                         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper    ClusterIP   10.110.180.64  <none>        8000/TCP        3m25s
kubernetes-dashboard         NodePort    10.111.182.77  <none>        443:30001/TCP   3m25s

443:30001/TCP 的端口对应关系:

端口 含义
443 Service 在集群内部使用的端口
30001 NodePort 对外暴露的端口

2. 打开登录页

浏览器访问 https://<节点IP>:30001,注意协议是 https,不要写成 http。

三、创建访问令牌(Token)

Dashboard 登录需要 Token,这里创建一个拥有集群最高权限的管理员账户。

1. 配置管理员账户

新建 rbac.yaml:

bash 复制代码
[root@master ~]# vim rbac.yaml

内容如下:

yaml 复制代码
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin
  namespace: kube-system

该文件创建了一个 ServiceAccount,并通过 ClusterRoleBinding 绑定集群最高权限 cluster-admin,用于登录 Dashboard。

2. 应用配置

bash 复制代码
[root@master ~]# kubectl apply -f rbac.yaml

输出:

text 复制代码
serviceaccount/dashboard-admin created
clusterrolebinding.rbac.authorization.k8s.io/dashboard-admin created

3. 获取 Token

bash 复制代码
[root@master ~]# kubectl create token dashboard-admin --namespace kube-system

输出示例:

text 复制代码
eyJhbGciOiJSUzI1NiIsImtpZCI6IlFQUdhejk2MXdicVZ1b1NpbW1pBZko2WEJqwWDFSdUYtWTFLUpwZFdfs0EifQ.eyJhdWQiOlsiaHR0cHM6Ly9rZHdlbGNmZGV2LmRlZmF1bHQuc3ZjLm5zZHN0ZXJlbG9jY3wiXSwiaXhwIjooxNzUxODg3MTExLCJpc3MiOiJ3NTE0ODM1MTExLCJlbmFzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5rZW5zaHd4OLnN2Yy5jbHVzdGVyLmxvY2FsIiwiYXViZXJjZXJ0IjoiY3ViZXJuZXRlcy5pby9rdWJ1bC1jcmVkZW50aWFscyIsInN1YnplY3R5cGUiOjk7Im5hbWUiOiJkYXNoYm9hcmQtYWRtaW4iLCJuaWQiOiJjODV1MDVjZS0xMDC5LTIwMjMtYTEwZjVjNjIifX0sIm5pZiI6MTc1MTg4NDMxMSwic3ViIjoic3lzdGVtOnN5c3RlbTpzZXJ2aWNlY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.Egq6WBcRa5lfzyTFTwxe_RSFkP3rJ50edS5b2KQbeo07f6AG3ksN2D98eVBPyaTNcPzy8cI7TVDdwoZe3UWYccs-EIkkkqX0yyoN9N-1aqemA6A28cSAr i3gr0K-NYxLN0xjatEMLQhra_jT970CLFyrkU5j-9Phck1N-yVXfeFZIwkT9cUbxOLNMFHkGKosF-qYucUnVS5CySAT83mfE8_duXW-qw1GUlbfAILs3d2V7MS7y5A12pfUSPBvM_9ndLW6mCn1XAYr7Q_C1JC1iItEYycEAfje96jbmSkCZ3CWprdxCTz_6TBk1d8GKie7hw-jMTCMb6UEDiKg-rsdNA

注意 :kubectl create token 是 Kubernetes 1.22 引入的临时令牌方式,默认有效期 1 小时;每次执行都会生成新 token,旧 token 自动失效。仅适合测试,需要长期有效的 token 时应使用 Secret 方式创建。

四、登录 Dashboard

将上一步获取的 Token 粘贴到登录页的 Token 输入框,即可进入 Dashboard。

相关推荐
阿里云云原生19 小时前
Agent 数据飞轮平台的选型和实践
云原生
做运维的阿瑞19 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform
无人生还别怕20 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
知已难寻21 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
分布式存储与RustFS21 小时前
模型权重散落在每台 GPU?用 RustFS 给 vLLM 做共享权重库
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
木雷坞1 天前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
fb_123451 天前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
wefg11 天前
【Docker】基本指令
运维·docker·容器
mengge.cloud1 天前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes