首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >零基础也能搞定!CentOS 7.9双节点安装Kubernetes Dashboard超详细教程

零基础也能搞定!CentOS 7.9双节点安装Kubernetes Dashboard超详细教程

作者头像
IT咸鱼
发布2025-05-20 18:56:01
发布2025-05-20 18:56:01
48500
代码可运行
举报
运行总次数:0
代码可运行

每天分享技术栈,开发工具等

(Master+Node架构)

本文将手把手教你在CentOS 7.9系统的两台服务器(Master和Node)上安装Kubernetes Dashboard,这是一个官方提供的Web可视化工具,能让你像操作手机App一样管理Kubernetes集群。 前置条件一个有用的链接

  1. 已按照前期教程搭建好Kubernetes 1.19集群(包含Master和Node节点)。
  2. 服务器已安装Docker、kubectl、kubeadm、kubelet等基础组件。

#一、名词扫盲
  1. Kubernetes Dashboard
    • 是什么?一个网页版控制台,可以查看集群状态、部署应用、监控资源使用情况。
    • 为什么需要?告别复杂的命令行操作,图形化界面更直观。
  2. NodePort
    • 一种服务类型,允许通过服务器IP+端口从外部访问集群内部服务。
  3. Token(令牌)
    • 登录Dashboard的“密码”,由Kubernetes集群生成,用于身份验证。

#二、环境检查

目标:确保Kubernetes集群已正常工作,避免后续安装失败。

检查集群节点状态

代码语言:javascript
代码运行次数:0
运行
复制
# 在Master节点执行:

kubectl get nodes

期望输出:

代码语言:javascript
代码运行次数:0
运行
复制
NAME     STATUS   ROLES    AGE   VERSION

masterReadymaster5d    v1.19.0

node1    Ready    <none>5d    v1.19.0

原理:若节点状态为Ready,说明集群网络、组件运行正常。

确认kubectl配置正确

代码语言:javascript
代码运行次数:0
运行
复制
kubectl cluster-info

期望输出:显示Master节点的API Server地址(如[https://192.168.1.100:6443](https://192.168.1.100:6443))。


#三、安装Kubernetes Dashboard

目标:部署Dashboard的Pod和服务,暴露访问端口。

下载官方部署文件

代码语言:javascript
代码运行次数:0
运行
复制
# 在Master节点执行:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

注意:v2.7.0是兼容Kubernetes 1.19的Dashboard版本,若下载失败可替换为国内镜像源地址。

修改配置文件

代码语言:javascript
代码运行次数:0
运行
复制
vi recommended.yaml

修改点:

原理:

  • NodePort允许通过服务器IP访问Dashboard。
  • •国内镜像源(如阿里云)避免因网络问题拉取失败。
  • 将服务类型改为NodePort: kind:Service apiVersion:v1 metadata: labels: k8s-app:kubernetes-dashboard name:kubernetes-dashboard namespace:kubernetes-dashboard spec: ports: -port:443 targetPort:8443 type:NodePort# 修改这里,原值为ClusterIP
  • •替换镜像地址为国内源(解决拉取失败问题): spec: containers: -name:kubernetes-dashboard image:registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v2.7.0# 替换此行

部署Dashboard

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f recommended.yaml

输出示例:

代码语言:javascript
代码运行次数:0
运行
复制
namespace/kubernetes-dashboard created

serviceaccount/kubernetes-dashboard created

service/kubernetes-dashboard created

...(略)

检查Pod状态

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get pods -n kubernetes-dashboard -o wide

期望输出:Pod状态为Running,且运行在Master或Node节点上。


#四、配置Dashboard访问权限

目标:创建管理员账号并获取登录Token。

创建管理员账号

代码语言:javascript
代码运行次数:0
运行
复制
cat | kubectl apply -f -

apiVersion: v1

kind: ServiceAccount

metadata:

  name: dashboard-admin

  namespace: kubernetes-dashboard

---

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: kubernetes-dashboard

EOF

原理:

  • ServiceAccount:代表一个服务账号。
  • ClusterRoleBinding:将账号绑定到cluster-admin角色(最高权限)。

获取登录Token

代码语言:javascript
代码运行次数:0
运行
复制
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

输出示例:

代码语言:javascript
代码运行次数:0
运行
复制
Name:         dashboard-admin-token-abcde

Type:  kubernetes.io/service-account-token

Data:

token:      eyJhbGciOiJSUzI1NiIsImtpZCI6I...(长字符串)

复制token字段的值,这就是登录密码。


#五、访问Dashboard

目标:通过浏览器打开Dashboard界面。

查看NodePort端口号

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get svc -n kubernetes-dashboard

输出示例:

代码语言:javascript
代码运行次数:0
运行
复制
NAME                   TYPE       CLUSTER-IP      PORT(S)         AGE

kubernetes-dashboard   NodePort   10.96.123.456443:30001/TCP   5m

记录端口号(此处为30001)。

  1. 浏览器访问
    • 地址:https://Node节点:30001
    • 选择Token登录方式,粘贴复制的Token。 注意:浏览器可能提示证书不安全,点击“高级”→“继续访问”即可。

#六、常见问题解决

镜像拉取失败(ImagePullBackOff)

  • •手动拉取镜像:docker pull registry.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v2.7.0 docker tag registry.aliyuncs.com/... kubernetesui/dashboard:v2.7.0 # 修改标签匹配配置文件
  • •原理:强制让Docker使用本地镜像。

Dashboard页面无法打开

  • •检查防火墙是否开放30001端口:firewall-cmd --zone=public --add-port=30001/tcp --permanent firewall-cmd --reload
  • •确认kube-proxy是否运行:kubectl get pods -n kube-system | grep kube-proxy

Token无效或过期

  • •重新生成Token:kubectl -n kubernetes-dashboard delete secret (kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print 1}')# 重新执行“获取登录Token”步骤
#七、总结

通过以上步骤,你已成功在CentOS 7.9集群上部署了Kubernetes Dashboard,现在可以:

  1. 通过Web界面查看Pod、节点、存储状态。
  2. 一键部署应用、调整副本数量。
  3. 监控资源使用情况(CPU、内存、磁盘)。

遇到问题先检查:

  1. Pod是否正常运行(kubectl get pods)。
  2. 端口是否开放(防火墙、安全组)。
  3. Token是否复制完整(避免遗漏字符)。

原创声明:本文步骤经多环境实测,引用Kubernetes官方文档及社区实践,如有疑问欢迎留言讨论!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • #一、名词扫盲
  • #二、环境检查
  • #三、安装Kubernetes Dashboard
  • #四、配置Dashboard访问权限
  • #五、访问Dashboard
  • #六、常见问题解决
  • #七、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档