Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态。K8S集群安装好后默认没有包含Dashboard,我们需要额外创建它。
安装:
在Github中有Dashboard的在线安装路径:
https://github.com/kubernetes/dashboard
url
把图中的命令复制K8S中就可以安装Dashboard了。
预先处理:
查看Dashboard的yaml文件你会发现他的sevice的类型是ClusterIP,大家都知道只有NodePort的serice才可以通过给外部访问,所以我们可以通过kubectl patch的方法对service打补丁。
kubectl patch svc kubernetes-dashboard -p '{"spec":{"type":{"NodePort"}}}' -n kube-system
#需要注意的他的名称空间不是在当前,在系统名称空间。
登录Dashboard:
登录的方法有两个个:kubeconfig,token
token:
流程如下:
kubectl create serviceaccount dashboard-svc -n kube-system
#加了-n kube-system说明你的serviceaccount属于集群级别没加则表示当前名称空间级别。
kubectl clusterrolebinding dashboard-crb --clusterrole=clustrer-admin --serviceaccount=kube-system:dashboard-svc
#一定要指定是哪个名称空间下的svc。
kubectl describe secret [绑定完会自动生成] -n kubectl-system
#secret文件是自动生成的需要自行查看其名称;查看其文件中的token项的值并把他复制到网页中即可登录。
kubeconfig:
kubeconfig的方式其本质就是把上面的token值转换成config文件。
流程如下:
- 因为要创建一个新的配置文件所以我们先要创建集群的配置信息:
kubectl config set-cluster 指定ca证书位置,指定集群IP,最后一定要加上配置文件地址--kubeconfig=路径 - 创建用户:
因为我们使用token的方式创建所以我们要先把token提取出来
kubectl get secret | awk '/^ServiceAccount/{print $1}'
KUBE_TOKEN=$(kubectl get secret SERVCIEACCOUNT_SERRET_NAME -o jsonpath={.data.token} |
base64 -d)
kubectl config set-credentials NAME --token=KUBE_TOKEN --kubeconfig=路径
- 添加上下文&设置当前上下文:
kubectl config set-context
kubectl config use-context