k8s-dashboardUI安装
2019-12-21 本文已影响0人
Lvxus
承接上一篇k8s-单master集群-----
配置dashboard,参考文章,以下是实际流程
- 拉取配置文件(还是在master节点的虚拟机上)
[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
- 直接执行部署dashboard服务
[root@k8s-master ~]# kubectl create -f kubernetes-dashboard.yaml
[root@k8s-master ~]# kubectl get pod --namespace=kube-system -o wide | grep dashboard
成功的结果
跳过修改yaml文件的原因是之前的文章,已经下载了需要的dashboard镜像(图一),而部署dashboard服务时,需要对本地的镜像进行检查,如果本地没有含有k8s.gcr.io的tag的镜像,则会进入gcr.io下载镜像(图二),而国内无法连接gcr.io,下载失败,造成无法部署,所以,参考文章中需要修改image的仓库地址。假如,使用阿里云的镜像后运行出现问题,可以尝试参考上一篇的做法,修改tag后再运行
- 访问dashboard
访问之前还需要一些配置,参考文章中给我们列出了五种访问方式,而我尝试了kubectl proxy 和nodeport的方式
- 配置登录用户
[root@k8s-master ~]# vim dashboard-adminuser.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
备注:上面创建了一个叫admin-user的服务账号,并放在kube-system命名空间下,并将cluster-admin角色绑定到admin-user账户,这样admin-user账户就有了管理员的权限
执行yaml文件
[root@k8s-master ~]# kubectl create -f dashboard-adminuser.yaml
查询token
[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
- kubectl proxy方式
只允许本地机器访问
[root@k8s-master ~]# kubectl proxy
允许外部访问
[root@k8s-master ~]# kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'
使用以下链接进行访问
http://<master-ip>:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
以上两种都试过,本地方式由于是使用Linux系统,没有可视化界面,无法看到效果,允许外部访问方式可以在其他电脑访问登陆界面但填入token无法登陆,因为Dashboard只允许localhost和127.0.0.1使用HTTP连接进行访问,而其它地址只允许使用HTTPS
- nodeport方式
修改kubernetes-dashboard.yaml文件
[root@k8s-master ~]# vim kubernetes-dashboard.yaml
....
---
# ------------------- Dashboard Service ------------------- #
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort #增加type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 31620 #增加nodePort: 31620
selector:
k8s-app: kubernetes-dashboard
重新执行kubernetes-dashboard.yaml
[root@k8s-master ~]# kubectl apply -f kubernetes-dashboard.yaml
用以下地址访问
https://部署机器ip:31620/
访问用的Google浏览器访问,此时可能会出现证书问题,导致无法进入登陆界面(其他浏览器不知道具体情况)
因此可以使用生成私有证书的方法,配置证书进行访问