九析带你轻松完爆 kubernates dashboard v2.0.0

目录

1 介绍 dashboard 

2 部署 dashboard 

3 修改 dashboard service type

4 获取 dashboard token

5 登录 dashboard

6 提权 service account

7 trouble shooting


1 介绍 dashboard

        dashboard 是 k8s web 控制台。你可以使用它在 k8s 中部署容器应用,定位容器异常、以及管理集群资源等。spacer.gifclipboard1.png        本文基于 k8s v1.16.3 版本,dashboard 采用 v2.0.0-beta6 版本。如果你的 k8s 版本低于 v1.16,建议直接采用 helm 安装低版本的 dashboard,可以参照本人的另外一篇文章《九析带你轻松完爆 helm3 kuberntes-dashboard》。


2 部署 dashboard

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

        如果你很走运,访问不到上面的网址,可以直接到我的网盘去下载,不用谢:spacer.gifclipboard2.png


3 修改 dashboard 服务类型

        部署完 dashboard,镜像都下载完毕之后,还需要修改一下 kubernetes-dashboard 的 service 类型才可以直接访问。默认情况下,kubernetes-dashboard 的服务类型为 ClusterIP,执行如下语句修改为 NodePort 类型:

kubectl patch svc -n kubernetes-dashboard kubernetes-dashboard -p '{"spec": {"type" : "NodePort"}}'


4 获取 dashboard token

        dashboard 控制台使用了鉴权机制,因此如果要访问,必须获取其登录 token。执行如下语句查找 token 所在的 secret 资源:

kubectl get secrets -n kubernetes-dashboard

clipboard3.png        本人 token 所在的 secert 资源名为 kubernetes-dashboard-token-8ctfw。每人生成的随机资源都不会相同,以个人情况为准。

        执行如下语句从 secret 资源查找 token:

kubectl get secrets -n kubernetes-dashboard kubernetes-dashboard-token-8ctfw -o yamlspacer.gif

clipboard4.png

        为了安全,secret 的 token 经过了 base64 的编码处理,不能直接使用。如果要使用,需要进行解码,解码语句如下。注意 token 一定要拷贝完整,看仔细

echo 'your token' | base64 -dspacer.gif

clipboard5.png


5 登录 dashboard

        获取 dashboard service 暴露的端口号,本人是 30501,注意不是 443。

kubectl get svc -n kubernetes-dashboard

clipboard6.pngspacer.gif        使用 firefox 或者 safari 浏览器( chrome 会有问题),登录即可轻松完爆。spacer.gifclipboard7.png


6 提权 service account

        默认 service account 为 kubernetes-dashboard,权限范围是 default 命名空间。如果想具有管理员权限,需要重新进行角色绑定。先将默认 service account 导出:

kubectl get clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard -o yaml > clusterrolebinding.yaml

        修改 clusterrolebinding.yaml 文件,将 role 名改为 cluster-admin(此角色就是集群管理员角色):

spacer.gifclipboard8.png

        删除旧的 clusterrolebindings:

kubectl delete clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard

        生成新的 clusterrolebindings:

kubectl apply -f clusterrolebinding.yaml

        再次登录,发现已经是管理员操作权限了:spacer.gifclipboard9.png


7 touble shooting

        dashboard 默认情况下使用的 service type 是 ClusterIP,上面的教程中将其改造成了 NodePort,如果你仍然想采用 ClusterIP 方式的话,可以使用如下命令来开启代理,代理默认会开启当前主机端口 8001。

kubectl proxy

        你可以通过访问当前主机上的 firefox 来访问 dashboard 控制台。

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

        如果你远程访问代理,则会报 Forbidden(403)。可以通过添加如下启动参数来解决:

kubectl proxy --address=0.0.0.0 --disable-filter=true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章