K8s(七)—Dashboard

Dashboard是K8s的管理界面,发行版本列表为:dashbaord/releases;主要是安装完成之后访问不了,所以整理一下

安装

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
  • 若服务器网络不通,可以先将文件进行下载,然后进行安装
  • 若镜像没有,需要将镜像先拉下来,然后再使用

访问

访问需要起动proxy, 官网的教程里面是这样的

kubectl proxy

若想要远程访问,则使用如下命令,直接授权所有主机,IP,并且后台运行;

kubectl proxy --address='0.0.0.0' --accept-hosts='^\*$' &

访问地址:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

若远程访问,修改一下IP即可;

登陆

登陆有两种方式,token或者认证文件;

token生成

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/kubernetes-dashboard -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

其中kubernetes-dashboard是在安装的文件里面指定的serviceAccount

问题

你可能会遇到如下问题:

原因原是,因为你没有证书,访问地址不安全,同时这个服务是ClusterIP,login成功之后,无法获取准确的跳转地址;

解决方法,将kubernetes-service服务修改为NodePort,待service重启完成后,看看Pod落到哪个Node上面

# kubectl -n kubernetes-dashboard  describe pod kubernetes-dashboard-78c79f97b4-5hjlc  | grep Node
Node:         jjh-db-test2/10.20.97.39
Node-Selectors:              kubernetes.io/os=linux

然后查看service的端口号:

kubectl -n kubernetes-dashboard  get service kubernetes-dashboard
NAME                   TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.110.60.112   <none>        443:31756/TCP   38m

访问: https://10.20.97.39:31756

若为chrome浏览器,不安全的情况下,请在页面所在的屏幕里面按: this is unsafe

不用怀疑,考验你的盲打能力

参考