在上一篇文章中,我们讲解了如何通过 Kind 快速部署本地 K8s 环境,今天我们将进一步讲解其本地 K8s 环境中添加 K8s Dashboard 的方法。
Kubenetes Dashboard 项目地址为 https://github.com/kubernetes/dashboard, 可以看到它提供统一的 Web 界面,对 K8s 集群中的不同命令空间的各种对象资源进行观测,非常简约直观,下面我们就来讲解其具体用法。
Kubenetes dashboard 安装
- Helm 安装
helm repo add kubernetes-dashboard --insecure-skip-tls-verify https://kubernetes.github.io/dashboard/
helm install dashboard kubernetes-dashboard/kubernetes-dashboard -n kubernetes-dashboard --create-namespace --insecure-skip-tls-verify
此时当您看到类似信息,说明安装成功:
kip-tls-verify
NAME: dashboard
LAST DEPLOYED: Mon Jul 3 17:15:03 2023
NAMESPACE: kubernetes-dashboard
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
*********************************************************************************
*** PLEASE BE PATIENT: kubernetes-dashboard may take a few minutes to install ***
*********************************************************************************
Get the Kubernetes Dashboard URL by running:
.....
- Manifest 方法 安装
除了 helm 部署方法外,我们还可以使用 Manifest 进行安装,命令为:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
说明:目前官方更推荐大家使用 Helm 安装。
访问 Dashboard
- 通过 port-forward 访问
当我们使用 Helm 安装完成后,通过提示信息可以看到相关方法,即
export POD_NAME=$(kubectl get pods -n kubernetes-dashboard -l "app.kubernetes.io/name=kubernetes-dashboard,app.kubernetes.io/instance=dashboard" -o jsonpath="{.items[0].metadata.name}")
echo https://127.0.0.1:8443/
kubectl -n kubernetes-dashboard port-forward $POD_NAME 8443:8443
执行该命令后访问 https://127.0.0.1:8443/ 链接。
- 通过 kubectl proxy
先执行 kubectl proxy
命令,再访问页面 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:dashboard-kubernetes-dashboard:https/proxy/#/login 。
注意:在本地进行测试验证,这步可能等待时间较长。
无论通过哪种方案,默认都会进入权限验证页面,类似:
创建 token
参考文档 access-control。
- 添加 admin-user 账户并设置访问权限
cat <<EOF | kubectl apply -f -
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
EOF
- 生成 token
kubectl -n kubernetes-dashboard create token admin-user
将生成的 token 拷贝到 Dashboard 认证页面,点击确认即可自动跳转默认首页。
总结
在 Kind 新建的 k8s 环境中,我们可以通过 Helm 或者 Manifest 方式安装 Kubenetes Dashboard,然后配置对应的授权账户即可进行页面访问,整个过程还是比较简单的。