参考资料
Kubernetes部署和访问 Kubernetes 仪表板(Dashboard)
部署和访问 Kubernetes 仪表板(Dashboard)
Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment、Job、DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。 Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。 部署 Dashboard UI 说明: Kubernetes Dashboard 目前仅支持基于 Helm 的安装,因为它速度更快, 并且可以让我们更好地控制 Dashboard 运行所需的所有依赖项。 默认情况下不会部署 Dashboard,可以通过以下命令部署: # 添加 kubernetes-dashboard 仓库 helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ # 使用 kubernetes-dashboard Chart 部署名为 `kubernetes-dashboard` 的 Helm Release helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard 访问 Dashboard 用户界面 为了保护你的集群数据,默认情况下,Dashboard 会使用最少的 RBAC 配置进行部署。 当前,Dashboard 仅支持使用 Bearer 令牌登录。 要为此样本演示创建令牌,你可以按照 创建示例用户 上的指南进行操作。
部署 Dashboard UI
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard \ kubernetes-dashboard/kubernetes-dashboard \ --create-namespace --namespace kubernetes-dashboard
查看运行情况和 endpoint 信息
kubectl get -n kubernetes-dashboard pod -l app.kubernetes.io/instance=kubernetes-dashboard -o wide
kubectl get -n kubernetes-dashboard svc -l app.kubernetes.io/name=kong -o wide
kubectl describe -n kubernetes-dashboard svc/kubernetes-dashboard-kong-proxy
kubectl 创建绑定 cluster-admin 权限的管理员服务帐户
如果不存在 cluster-admin 集群角色权限,需要先手动创建 cluster-admin
kubectl get clusterroles -o yaml | grep admin
vim ClusterRole.cluster-admin.yaml
kubectl --context=default apply -f ClusterRole.cluster-admin.yaml
vim ServiceAccount.admin-user.yaml
- 在命名空间
kubernetes-dashboard中创建名为admin-user服务帐户
- 创建 ClusterRoleBinding 绑定
cluster-admin权限
kubectl --context=default apply -f admin-user.yaml
kubectl 检查帐户
kubectl -n kubernetes-dashboard get serviceaccount admin-user -o yaml
kubectl get clusterrolebinding | grep cluster-admin
创建用于登录的访问令牌
kubectl create token admin-user -n kubernetes-dashboard
(可选)为服务帐户生成长期有效的令牌
参考资料
创建一个与服务账号绑定的 Secret,令牌会保存在 Secret 中
- 获取 Secret 中的令牌
建立端口转发 port-forward 来访问仪表盘
kubectl get svc -n kubernetes-dashboard- 查看端口
kubectl port-forward svc/kubernetes-dashboard-kong-proxy 9443:443 -n kubernetes-dashboard- 转发到端口 9443,通过 https://localhost:9443 访问
--address 0.0.0.0监听0.0.0.0,可通过主机名访问--address localhost,10.19.21.23同时监听指定 IP
(可选)k3s 集群直接使用 traefik 的 IngressRoute 建立到仪表盘的路由
- k3s 自带 traefik 作为 Ingress Controller,通过
IngressRoute可以路由到对应服务 - 如果使用 nginx 则需要配置
Ingress
vim ~/.config/k3s/IngressRoute.k8s-dboard.yaml
- 由于是自签证书且不包含对应 IP 的 san 记录,traefik 验证时会报错,需要配置
serversTransport来禁用证书验证
kubectl apply -f ~/.config/k3s/IngressRoute.k8s-dboard.yaml
kubectl get ingressroute -A
添加对应域名的 DNS 记录到 /etc/hosts
kubectl -n kube-system get svc -l app.kubernetes.io/name=traefik -o wide
curl 测试
curl -kv https://dashboard.traefik.cluster.local/
卸载 Dashboard
helm uninstall kubernetes-dashboard
kubectl delete serviceaccount/admin-user -n kubernetes-dashboard- 会自动清除绑定的令牌
kubectl delete clusterrolebinding admin-userkubectl get clusterrolebinding | grep cluster-admin
- Author:白鸟3
- URL:https://blog.kun2peng.top/operation/k8s_dashboard
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
