Kubernetes官方WebUI:Dashboard使用教程
Kubernetes 官方 Web UI:Dashboard 使用教程
Kubernetes Dashboard 是一个官方提供的基于 Web 的用户界面,用于管理和监控 Kubernetes 集群。它提供了一个直观的方式来查看集群状态、部署应用程序、执行故障排除等。这篇教程将详细介绍如何安装、访问和使用 Dashboard。
一、安装 Dashboard
安装 Dashboard 有多种方法,这里介绍最常用的两种:
1. 使用官方 YAML 文件部署:
这是最推荐的方法,因为它可以确保你安装的是最新版本的 Dashboard,并且与你的 Kubernetes 版本兼容。
bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
注意:
v2.7.0
是 Dashboard 版本号,可以根据需要更改为其他版本。- 确保你的 Kubernetes 集群版本与 Dashboard 版本兼容,可以在 Dashboard 的 GitHub 仓库中查看兼容性信息。
2. 使用 Helm 部署:
如果你使用 Helm 来管理 Kubernetes 应用程序,可以使用 Helm Chart 来安装 Dashboard。
bash
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update
helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --namespace kubernetes-dashboard
安装完成后验证:
运行以下命令查看 Dashboard Pod 的状态:
bash
kubectl get pods -n kubernetes-dashboard
如果 Dashboard Pod 的状态为 Running
,则表示安装成功。
二、访问 Dashboard
由于安全原因,Dashboard 默认情况下无法从集群外部访问。为了访问 Dashboard,我们需要使用 kubectl proxy
创建一个本地代理:
bash
kubectl proxy
默认情况下,代理会在 127.0.0.1:8001
上监听。现在,可以通过以下 URL 访问 Dashboard:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
三、创建访问令牌(Token)
为了安全起见,Dashboard 需要使用令牌进行身份验证。我们可以创建一个 ServiceAccount 并获取其令牌:
1. 创建 ServiceAccount:
yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
将其保存为 dashboard-adminuser.yaml
,然后应用:
bash
kubectl apply -f dashboard-adminuser.yaml
2. 绑定 ClusterRoleBinding:
我们需要将 cluster-admin
角色绑定到刚才创建的 ServiceAccount,以便拥有足够的权限。
yaml
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
将其保存为 dashboard-adminuser-role.yaml
,然后应用:
bash
kubectl apply -f dashboard-adminuser-role.yaml
3. 获取令牌:
运行以下命令获取令牌:
bash
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
你会看到类似以下的输出,复制 token:
后面的字符串:
```
Name: admin-user-token-xxxxx
Namespace: kubernetes-dashboard
Labels:
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Type: kubernetes.io/service-account-token
Data
ca.crt: xxxx bytes
namespace: xx bytes
token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
四、使用 Dashboard
现在,在浏览器中打开 Dashboard 链接,选择 “Token” 方式登录,并粘贴刚才获取的令牌。登录成功后,你将看到 Dashboard 的主界面。
4.1. 概览
Dashboard 的主界面提供了集群的概览信息,包括:
- 集群状态: 显示集群中节点的健康状况、CPU 和内存使用率等。
- 工作负载: 显示集群中运行的 Pod、Deployment、ReplicaSet 等工作负载的状态。
- 服务: 显示集群中运行的服务和 Ingress 的状态。
- 存储: 显示集群中使用的持久卷和持久卷声明的状态。
- 配置: 显示集群中的 ConfigMap 和 Secret。
- 事件: 显示集群中发生的事件。
4.2. 部署应用程序
Dashboard 提供了多种部署应用程序的方式:
- 通过 YAML/JSON 文件部署: 可以上传或粘贴 YAML/JSON 文件来部署应用程序。
- 通过表单部署: 可以通过填写表单来创建 Deployment、Service 等资源。
- 通过镜像部署: 可以直接输入镜像名称来部署应用程序。
4.3. 管理工作负载
Dashboard 可以用于管理集群中的工作负载,例如:
- 查看 Pod 日志: 可以查看 Pod 的实时日志,方便进行故障排除。
- 进入 Pod 终端: 可以通过 Web 终端进入 Pod 内部进行操作。
- 编辑 Deployment: 可以修改 Deployment 的配置,例如副本数、镜像版本等。
- 删除资源: 可以删除不需要的 Pod、Deployment、Service 等资源。
- 扩缩容: 可以通过拖动滑块来调整 Deployment 的副本数。
4.4. 监控集群
Dashboard 提供了丰富的监控功能,可以帮助你了解集群的运行状态:
- 查看节点状态: 可以查看每个节点的 CPU、内存、磁盘和网络使用情况。
- 查看 Pod 状态: 可以查看每个 Pod 的 CPU、内存使用情况以及重启次数等。
- 查看事件: 可以查看集群中发生的事件,例如 Pod 启动失败、节点故障等。
4.5. 其他功能
Dashboard 还提供了其他一些功能,例如:
- CRD 支持: 可以查看和管理集群中的自定义资源(CRD)。
- 多语言支持: 支持多种语言,包括中文。
- 主题切换: 支持浅色和深色主题。
五、总结
Kubernetes Dashboard 是一个功能强大的 Web UI,可以帮助你轻松地管理和监控 Kubernetes 集群。通过这篇教程,你应该已经掌握了 Dashboard 的基本使用方法。建议你进一步探索 Dashboard 的更多功能,以便更好地利用它来管理你的 Kubernetes 集群。