简介
Kubernetes Dashboard 是一个基于 Web 的用户界面,用于简化和监控 Kubernetes 集群的管理。它提供了一种直观的方式来部署和管理应用程序,以及查看和分析集群资源。本实验将指导你如何部署和访问 Kubernetes Dashboard。
Kubernetes Dashboard 是一个基于 Web 的用户界面,用于简化和监控 Kubernetes 集群的管理。它提供了一种直观的方式来部署和管理应用程序,以及查看和分析集群资源。本实验将指导你如何部署和访问 Kubernetes Dashboard。
在部署 Kubernetes Dashboard 之前,请确保你的集群正在运行。本实验将使用 Minikube。
打开终端并导航到项目目录:
cd ~/project
启动 Minikube 集群:
minikube start
Minikube 会创建一个本地 Kubernetes 集群,便于测试 Dashboard 等功能。此过程可能需要几分钟。
通过检查状态来验证 Minikube 是否正在运行:
minikube status
如果集群未运行,请使用 minikube delete
删除集群,然后重新启动 minikube start
。
Kubernetes Dashboard 默认不包含在集群中。使用官方的部署 YAML 文件来部署它。
运行以下命令以部署 Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
此命令会为 Dashboard 创建所有必要的资源,包括 Deployment、Service 和基于角色的访问控制(RBAC)设置。
验证 Dashboard 是否正在运行:
kubectl get pods -n kubernetes-dashboard
查找名称为 kubernetes-dashboard
的 Pod,并确保其状态为 Running
。
验证 Dashboard 的命名空间:
kubectl get ns | grep kubernetes-dashboard
命名空间 kubernetes-dashboard
应该存在。
默认情况下,Kubernetes Dashboard 限制了访问权限。要以管理员权限登录,你需要创建一个服务账户并将其绑定到集群角色。
创建一个名为 dashboard-admin.yaml
的文件:
nano ~/project/dashboard-admin.yaml
将以下内容添加到文件中:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
该文件定义了一个服务账户 admin-user
,并授予其在集群中的管理员权限。
按 Ctrl+X
,Y
,然后按 Enter
保存文件。
应用配置:
kubectl apply -f dashboard-admin.yaml
验证服务账户和角色绑定:
kubectl get sa -n kubernetes-dashboard
你应该会看到列出的 admin-user
服务账户。
kubectl get clusterrolebinding
你应该会看到列出的 admin-user
集群角色绑定。
现在 Dashboard 已运行且权限已配置,可以通过浏览器访问它。
生成登录令牌:
kubectl -n kubernetes-dashboard create token admin-user
复制生成的令牌。这将用于登录。
编辑 Dashboard Service 以将其暴露在 NodePort 上:
kubectl edit service -n kubernetes-dashboard kubernetes-dashboard
找到 spec
下的 type
字段,并将其值更改为 NodePort
。保存并退出。
查找分配给 Dashboard 的 NodePort:
kubectl get service -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.104.164.172 <none> 8000/TCP 20m
kubernetes-dashboard NodePort 10.108.222.153 <none> 443:30587/TCP 20m
注意 PORT(S)
列下列出的端口号(例如 30587
)。这是你将用于访问 Dashboard 的端口。
获取节点的 IP 地址:
kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 35m v1.26.1 192.168.58.2 <none> Ubuntu 20.04.5 LTS 5.15.0-56-generic docker://20.10.23
INTERNAL-IP
列提供了节点的 IP 地址。
在桌面上打开 Firefox 浏览器并导航到以下 URL:
https://<node-ip>:<node-port>
将 <node-ip>
替换为节点的 IP 地址,将 <node-port>
替换为步骤 3 中的端口。
如果出现安全警告提示,请选择“高级”并点击“接受风险并继续”。
你现在应该已登录到 Kubernetes Dashboard,可以浏览集群资源并管理工作负载。
在本实验中,你学习了如何:
通过 Kubernetes Dashboard,你可以直观地管理应用程序、监控资源并探索集群配置。该工具简化了 Kubernetes 操作,特别是对于从命令行工作流过渡的初学者。继续探索其功能,以充分利用你的 Kubernetes 环境!