搜索结果

×

搜索结果将在这里显示。

🍦 07-K8s 可视化UI界面 Dashboard 部署指南

一、安装 Dashboard

1. 导入离线镜像

将 Dashboard 依赖的镜像包上传到所有工作节点,手动导入:

# 两个Node节点都执行
docker load -i dashboard_2_0_0.tar.gz
docker load -i metrics-scrapter-1-0-1.tar.gz

2. 部署 Dashboard 组件

在 Master 节点执行部署命令:

kubectl apply -f kubernetes-dashboard.yaml

验证 Pod 运行状态:

kubectl get pods -n kubernetes-dashboard

正常输出示例:

NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-7445d59dfd-n5krt   1/1     Running   0          66s
kubernetes-dashboard-54f5b6dc4b-mhd2c        1/1     Running   0          66s

查看默认 Service 信息:

kubectl get svc -n kubernetes-dashboard

默认 Service 类型为 ClusterIP,仅集群内部可访问。

3. 修改 Service 暴露 NodePort 端口

将 Service 类型改为 NodePort,通过节点 IP + 端口对外访问:

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

将配置中的 type: ClusterIP 修改为 type: NodePort,保存退出。

再次查看 Service,获取随机映射的端口:

kubectl get svc -n kubernetes-dashboard

输出示例:

NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.98.221.57   <none>        8000/TCP        
kubernetes-dashboard        NodePort    10.97.37.171   <none>        443:32728/TCP   2m50s

本例中对外暴露的端口为 32728

4. 浏览器访问与证书问题处理

访问地址:https://任意节点IP:NodePort端口,例如 https://192.168.40.180:32728/

由于 Dashboard 默认使用自签名证书,浏览器会提示安全风险,处理方式:

  • 火狐浏览器:点击「高级」→「接受风险并继续」

  • Chrome 浏览器:在报错页面任意位置,直接键盘输入 thisisunsafe(共 11 个字符,无需输入框),即可自动跳过证书校验进入登录页


二、方式一:Token 令牌登录 Dashboard

1. 授权 Dashboard 管理员权限

给 Dashboard 服务账号绑定集群管理员角色,拥有全集群管理权限:

kubectl create clusterrolebinding dashboard-cluster-admin \
  --clusterrole=cluster-admin \
  --serviceaccount=kubernetes-dashboard:kubernetes-dashboard

2. 获取登录 Token

  1. 查看命名空间下的 Secret 列表:
kubectl get secret -n kubernetes-dashboard

找到名称格式为 kubernetes-dashboard-token-xxxx 的 Secret。

  1. 查看 Secret 详情,获取 Token 值:
kubectl describe secret kubernetes-dashboard-token-ppc8c -n kubernetes-dashboard

输出中 token: 后面对应的长字符串即为登录凭证。

3. Token 登录验证

在 Dashboard 登录页选择「Token」方式,粘贴获取到的 Token 字符串,点击登录即可进入管理界面。


三、方式二:kubeconfig 文件登录 Dashboard

通过生成独立的 kubeconfig 配置文件,导入界面完成登录,无需每次输入 Token。

操作目录:/etc/kubernetes/pki

cd /etc/kubernetes/pki

1. 创建集群(cluster)配置

写入集群地址与 CA 证书到配置文件:

kubectl config set-cluster kubernetes \
  --certificate-authority=./ca.crt \
  --server="https://192.168.40.180:6443" \
  --embed-certs=true \
  --kubeconfig=/root/dashboard-admin.conf

2. 创建用户凭证(credentials)

将 Dashboard 的 Token 写入配置文件作为用户认证信息:

# 先把Token存入变量
DEF_NS_ADMIN_TOKEN=$(kubectl get secret kubernetes-dashboard-token-ppc8c -n kubernetes-dashboard -o jsonpath={.data.token}|base64 -d)

# 写入用户凭证
kubectl config set-credentials dashboard-admin \
  --token=$DEF_NS_ADMIN_TOKEN \
  --kubeconfig=/root/dashboard-admin.conf

3. 创建上下文(context)

将集群与用户绑定,生成访问上下文:

kubectl config set-context dashboard-admin@kubernetes \
  --cluster=kubernetes \
  --user=dashboard-admin \
  --kubeconfig=/root/dashboard-admin.conf

4. 切换默认上下文

kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/dashboard-admin.conf

5. kubeconfig 文件登录

将生成的 /root/dashboard-admin.conf 文件下载到本地,在 Dashboard 登录页选择「Kubeconfig」方式,上传该文件即可完成登录。


四、通过 Dashboard 可视化创建应用

1. 提前导入镜像

将应用镜像(以 nginx 为例)上传到所有工作节点并导入:

docker load -i nginx.tar.gz

2. 界面创建 Deployment 与 Service

  1. 点击 Dashboard 右上角的「+」号创建资源

  2. 选择「Create from form」表单创建模式

  3. 填写核心参数:

    • App name:应用名称,例如 nginx

    • Container image:容器镜像名,例如 nginx

    • Number of pods:Pod 副本数,例如 2

    • Service:选择 External(对外暴露服务)

    • Port:Service 端口,填 80

    • Target port:容器内端口,填 80

    • Protocol:选择 TCP

  4. 点击「Deploy」完成部署

3. 验证应用访问

  1. 左侧菜单进入「Services」页面,找到刚创建的 nginx 服务

  2. 查看对外映射的 NodePort 端口(例如 31135)

  3. 浏览器访问 http://节点IP:端口,例如 http://192.168.40.180:31135,能看到 Nginx 欢迎页即为部署成功。

说明:通过表单创建对外服务时,会自动生成 30000 以上的随机 NodePort 端口。


五、端口概念说明(port /targetPort/nodePort)

  • nodePort:集群外部流量访问的入口端口,暴露在节点物理机上,供外部用户访问服务(如浏览器访问 Nginx)。

  • port:Service 在集群内部的端口,用于集群内其他 Pod 互相访问当前服务(例如集群内其他服务调用 MySQL)。

  • targetPort:目标端口,即 Pod 内部容器实际监听的端口,Service 会将流量最终转发到该端口。