赞
踩
dashboard和k8s存在版本对应关系,具体可以去github查找https://github.com/kubernetes/dashboard/releases
由于我的k8s版本是1.20,所以dashboard选择v2.4.0版本
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
如有网络问题,可通过其他方式下载再上传到服务器,修改定义的Service,将type由ClusterIP修改为NodePort,以便我们直接通过地址+端口进行访问,并配置访问端口。
修改kubernetes-dashboard定义的Deployment为主节点启动,其他节点启动可能会出现问题(默认为master)
由于个人资源分配习惯,所以将dashboard-metrics-scraper也分配到master
kubectl apply -f recommended.yaml
执行完成后,查看pods
kubectl get pods -A
访问集群任意节点的ip+30000端口,本文使用主节点:https://192.168.19.100:30000
因为k8s dashboard使用https进行访问,我们没有相关证书,因此有些浏览器是禁止访问的,如Chrome,我们可以使用FireFox、360急速浏览器进行访问。
k8s提供两种登录机制,本文采用Token访问机制进行登录
查看集群secret
kubectl get secret -n kubernetes-dashboard
查看token
kubectl describe secret kubernetes-dashboard-token-568gh -n kubernetes-dashboard
复制最后的token字符串到登录界面,点击登录,可以看到dashboard首页
此时我们看不到任何数据,点击右上角的小铃铛,发现异常信息:
serviceaccounts is forbidden: User “system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard” cannot list resource “serviceaccounts” in API group “” in the namespace “default”,说明为权限不足,下面我们配置权限
k8s采用的是基于角色的访问控制策略,Role-Based Access Control, 即”RBAC”,使用”rbac.authorization.k8s.io” API Group实现授权决策,涉及到ServiceAccount,Role,ClusterRole,RoleBinding,ClusterRoleBinding,Secret等概念
kubectl create clusterrolebinding serviceaccount-cluster-admin --clusterrole=cluster-admin --user=system:serviceaccount:kubernetes-dashboard:kubernetes-dashboard
配置完成后,刷新页面即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。