k8s的dashborad插件安装完用traerfik代理失败,始终没法解决了。。。 真是法克了。。。
最后使用kubectl proxy的方式了
这个解释一下,这是个通过api的匹配来访问,很不安全,不如NodePort,这个要是外暴露的话会被别人扫端口发现一访问能看到k8s的所有的api接口,不是太推荐
kubectl proxy --address='0.0.0.0' --port=8087 --accept-hosts='^*$' & #用kubectl老开个proxy访问k8s的api,然后访问方式是http://kubectl-proxy:8087/ui
写了个停之启动的脚本.... #!/bin/bash case "$1" in start) nohup kubectl proxy --address='0.0.0.0' --port=8087 --accept-hosts='^*$' & ;; stop) pid_f=`ps -aux|grep "kubectl .* --port=8087 --accept-hosts=^*" |grep -v "color=auto" ` pid=`echo $pid_f |awk '{print $2}'` port_check=`netstat -tl|grep simplifymedia|wc -l` echo $pid [ $port_check -eq 1 ] && kill -9 $pid || echo "no pid" ;; *) echo "Warn: start | stop" ;; esac
每次登陆dashborad的时候用kubeconfig文件或者token的文件来登陆dashborad,这俩个办法都需要token,但是token会过期,这很感觉虽然安全了,但是麻烦了,想办法认证跳过
授予admin权限,跳过登录
注意: 首先需要确保你知道这样做的后果,授予admin权限后安全性较低,不建议在生产环境中使用。
创建admin角色
vim admin-user-sa-rbac.yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- 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: kube-system
$ kubectl create -f admin-user-sa-rbac.yaml
修改dashboard角色配置 编辑
kubernetes-dashboard.yaml
文件
找到以下配置:
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: kubernetes-dashboard-minimal namespace: kube-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: kubernetes-dashboard-minimal subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system
修改为:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard-admin namespace: kube-system roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system
再进入dashboard认证界面直接跳过即可是admin权限了。。。
不安全!!!!!!!!