DashBoard安装使用
DashBoard安装使用
一、实验目的
1、掌握dashboard 的安装部署
2、熟悉图像化部署任务:产生pod---定义服务--验证访问
二、实验内容:
1、配置步骤
1.1、Helm安装
离线安装(适用于内网/离线环境)
# 根据系统架构选择版本,如linux-amd64 wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz tar -zxvf helm-v3.12.3-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm helm version |
1.2部署 Kubernetes Dashboard
1.2.1. 添加仓库并部署
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ helm repo update helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \ --create-namespace \ --namespace kubernetes-dashboard |
1.2.2. 验证部署
kubectl get namespaces | grep dashboard kubectl get pods -n kubernetes-dashboard |
1.2.3. 访问 Dashboard
临时访问(仅限本地):# 停止当前端口转发 (Ctrl+C)
# 然后运行:
kubectl -n kubernetes-dashboard port-forward --address 0.0.0.0 svc/kubernetes-dashboard-kong-proxy 8443:443
登录不成功是由于,master节点有污点,由于我是单节点安装,我对污点进行了删除,操作步骤如下:
- 查看节点状态:kubectl get pods -n kubernetes-dashboard
#此时都处于pending状态,不可用
- 删除主节点污点:kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule-
- 检验:kubectl describe node master | grep Taints
- 验证:watch kubectl get pods -n kubernetes-dashboard -o wide
- 再次登录
网页登录页面如下
1.3生成token
创建 ServiceAccount 及ClusterRoleBinding角色绑定
创建 ServiceAccount 和 ClusterRoleBinding(授予管理员权限) # 创建 ServiceAccount(管理员账户) kubectl create serviceaccount admin01 -n kubernetes-dashboard # 绑定 ClusterRoleBinding(授予集群管理员权限) kubectl create clusterrolebinding admin01 --clusterrole=cluster-admin \ --serviceaccount=kubernetes-dashboard:admin01 |
创建对应服务账号的token,我选择自定义token有效期为24h
生成访问令牌(Token)正常来说时间不用太长 # 生成默认有效期(1小时)的令牌 kubectl -n kubernetes-dashboard create token admin01 # 生成自定义有效期(24小时)的令牌 kubectl -n kubernetes-dashboard create token admin01 --duration 24h eyJhbGciOiJSUzI1NiIsImtpZCI6ImhMb2NHMHdoSzVVczh1REstMzdXMWNXVWp2VjQ5aEU1WVFuaDlRSG5xckUifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzQ4NTY4Nzg2LCJpYXQiOjE3NDg0ODIzODYsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbjAxIiwidWlkIjoiZmQxYmY4YTMtMDc5Mi00ZWY4LThjMDQtZmM3MzYyZWMxZjY4In19LCJuYmYiOjE3NDg0ODIzODYsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbjAxIn0.ekQUmh2HR8IaNaN4wdyYqB8BGDZlm3UrPzkW70xMkBNeys8JH4J2c5d_OeREpGE7nL6RbDNV5X-zIBVNTcilDNX2b9vcTvtuGs6QaLLrhmVZlx5HFLi7EYq6ojARXa2PpDRZdLFuZTIvl7joVBcWNEA-kuPIgbLACOBKyiHw5sHsQA5BVO2OqJcH3A3oZrQFKLi1EMyrmqZzYqlEHKfVihi4Rm5WHWPL6TtlFETVu9wpItnXyah0F4mmK5tj3nCdVBE2XpWOui2J9tSEgNLPsgQPjEW26SXNFKcUA2QCNeDLdYIT1x8HExlFiUa3e7Uu7q9Zz6uw0oUjKcul8VSiTA |
如果报错401
换端口转发,操作步骤如下
修改端口类型,可以实现外部访问
修改 Service 类型为 NodePort(外部访问) # 修改 Service 类型为 NodePort kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard \ --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]' # 指定固定 NodePort(例如 30083) kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard \ --type='json' -p '[{"op":"add","path":"/spec/ports/0/nodePort","value":30083}]' #端口转发指令修改为: kubectl -n kubernetes-dashboard port-forward --address 0.0.0.0 svc/kubernetes-dashboard-kong-proxy 30083:443 |
测试访问:https://192.168.1.60:30083/
登录时的注意事项
使用正确的登录方式:
选择 Token 而不是 Kubeconfig
在 Token 字段粘贴完整 Token
浏览器相关:
尝试 Chrome/Firefox 最新版
清除浏览器缓存和 Cookie
使用隐私/无痕模式
网络相关:
确保端口转发仍在运行
本地访问使用 https://localhost:8443
在浏览器有问题时,清除缓存也不能登录,使用无痕模式即可登录
1.4、 k8s dashboard 的基本使用
(1)点击pods,创建pod(三种方式)
直接编写yaml或json 文件;导入已经写好的yaml或json;通过表单创建
刷新,后变绿(稍微等一下)
点击对应的pod 能看到详细信息;类似与 kubectl describe pod xx
功能展现:编号1、2、3、4分别作用
1为查看日志
2为在pod中运行
3为编辑资源
4为删除资源
- 实验结论
本次实验完成了Kubernetes Dashboard的部署与基本使用验证。
Dashboard提供了直观的图形化界面,简化了Kubernetes资源的管理和操作。
在实际生产环境中,Dashboard可用于快速排查问题、部署应用及监控集群状态。