在参考大神的教程安装kubernetes集群的同时安装了dashboard;部署时使用到的dashboard-rbac.yaml
文件如下:
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: dashboard
subjects:
- kind: ServiceAccount
name: dashboard
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
可以看到,我们用的是cluster-admin
这个角色,这个角色什么权限都有,如果我们的dashboard是暴露外网可访问的,就很危险了;所以决定自己定义集群的角色,使dashboard默认角色拥有较少的权限。
我们这里使用RBAC来做认证。
注意: 因为我们前面安装dashboard的时候没有采用https的请求,而k8s的认证需要使用HTTPS的访问,这一点从官网和dashboard的官方文档都能看出来:
Login view has been introduced in release 1.7. In order to make it appear in Dashboard you need to enable and access Dashboard over HTTPS.
Dashboard 升级
删除之前安装的dashboard 的deployment,svc等
$ sudo kubectl delete deploy kubernetes-dashboard -n kube-system
$ sudo kubectl delete svc kubernetes-dashboard -n kube-system
## 如果dashboard需要一个超级管理员的用户,那么ClusterRoleBinding,sa不用删
$ sudo kubectl delete ClusterRoleBinding dashboard -n kube-system
$ sudo kubectl delete sa dashboard -n kube-system
部署Dashboard
还是采用dashboard官方提供的文件:kubernetes-dashboard.ayml
下载文件
#wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml