kubernetes dashboard 是 k8s 自带的 k8s 图形化管理工具。使用这个工具可以帮助用户通过图形化页面配置 k8s 资源,掌握 k8s 系统的整体使用情况,把用户的双手从敲 kubectl 命令中解放出来。

下面我们就介绍安装 kubernetes dashboard 的详细步骤。

下载安装

执行下面的命令下载安装 kubernetes dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

默认安装完成以后 kubernetes dashboard 服务使用的是 clusterIP 只能在 k8s 的内网访问。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes-dashboard ClusterIP 10.43.109.187 443/TCP 25h

dashboard-metrics-scraper ClusterIP 10.43.176.18 8000/TCP 25h

配置服务让外界可以访问

要解决这个问题我们可以创建一个 nodeport 服务对外直接暴露 node IP 和端口,让外界能够直接访问。

输入以下命令完成 nodeport 的创建:

kubectl expose deployment kubernetes-dashboard --type=NodePort --name=kubernetes-dashboard-nodeport -n kubernetes-dashboard

使用下面的命令可以检查 nodeport 服务的状态

kubectl get service kubernetes-dashboard-nodeport -n kubernetes-dashboard

系统显示类似于下面的信息

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes-dashboard-nodeport NodePort 10.43.179.223 8443:32398/TCP 5s

现在在浏览器中输入 https://ip:port 就可以看到登录界面了。这里的 port 就是系统给我们分配的暴露 kubernetes dashboard 的端口。在上面的例子中是 32398

创建用户和 token

系统提示要有 token 才能访问。我们需要做两件事情:

生成用户给用户增加角色

生成用户

保存下面的 yaml 为文件,文件名可以为user.yaml

apiVersion: v1

kind: ServiceAccount

metadata:

name: admin-user

namespace: kubernetes-dashboard

运行下面的命令创建用户

kubectl apply -f user.yaml

添加角色

保持下面的 yaml 为文件,文件名可以为 role.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

运行下面的命令绑定角色

kubectl apply -f role.yaml

生成 token

运行下面的命令生成 token

kubectl -n kubernetes-dashboard create token admin-user

保存好 token,以后我们需要使用 token 登录 kubernetes dashboard.

完成以上步骤后我们就可以通过 dashboard 访问和控制我们的 k8s 系统了。

用上面的命令生成的 token 有效期是 1 小时。过了有效期需要重新生成 token。可以参考以下链接来生成没有有效期限制的 token。

生成没有有效期限制的 token

结论

本文介绍了如何安装和访问 kubernetes dashboard。安装相对简单,复杂的是暴露该服务并且设置用户来访问。

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。