k8s-dashboardUI安装

2019-12-21  本文已影响0人  Lvxus

承接上一篇k8s-单master集群-----

配置dashboard,参考文章,以下是实际流程
  1. 拉取配置文件(还是在master节点的虚拟机上)
[root@k8s-master ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
  1. 直接执行部署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后再运行

k8s所需的镜像-图一 yaml文件-图二
  1. 访问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}')
[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

[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浏览器访问,此时可能会出现证书问题,导致无法进入登陆界面(其他浏览器不知道具体情况)
因此可以使用生成私有证书的方法,配置证书进行访问

访问并登陆成功
上一篇下一篇

猜你喜欢

热点阅读