K8S UI 之 Dashboard
摘要
-
本文介绍 K8S 的 UI 管理工具 Dashboard,本文以 CentOS 8 为例。
Dashboard 简介
-
Dashboard 是基于网页的 Kubernetes 用户界面。
-
你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。
-
你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment、Job、DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
-
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
部署 Dashboard
-
Kubernetes Dashboard 目前仅支持基于 Helm 的安装,因为它速度更快, 并且可以让我们更好地控制 Dashboard 运行所需的所有依赖项。
1 | # 添加 kubernetes-dashboard 仓库 |
-
查看启动的资源
1 | $ kubectl -n kubernetes-dashboard get all |
小贴士
- 第一次创建kubernetes-dashboard时,有几个 pod 一直处于 ContainerCreating 状态,通过 describe 命令,查看 pod 的状态发现报如下错误:
1 | Warning FailedCreatePodSandBox 4m52s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "cfa0b6062fabd77353e6d832ab0e62f96787b4d59346d9e57c28dbc0e19a3127": plugin type="calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized |
-
这条错误说明:
- 容器网络插件(CNI)使用的是 Calico
- Calico 在尝试获取 Kubernetes 集群的 ClusterInformation 时 认证失败
- 错误关键词:connection is unauthorized: Unauthorized
-
不确定导致这一问题的原因,我的解决方法是重新安装 Calico
1 | kubectl delete -f calico.yaml |
-
开放代理端口
1 | # 在哪个机器上运行的命令,开放的就是哪个机器的端口 |
-
访问:在开放代理端口的机器上使用浏览器访问:https://localhost:8443
登录帐号
-
创建管理员用户
1 | # dashboard-adminuser.yaml |
-
创建并获取token
1 | kubectl apply -f dashboard-adminuser.yaml |
-
获取长效token
1 | # dashboard-secret.yaml |
1 | kubectl apply -f dashboard-secret.yaml |
卸载 kubernetes-dashboard
-
卸载 kubernetes-dashboard
1 | helm uninstall kubernetes-dashboard --namespace kubernetes-dashboard |
-
清理用户信息
1 | kubectl -n kubernetes-dashboard delete serviceaccount admin-user |