Kubernetes Dashboard(https://github.com/kubernetes/dashboard)是Kubernetes的Web UI管理工具,能够支持多种K8s运行环境,在Docker for Mac上能够快速安装使用(http://www.noobyard.com/article/p-beplpluk-me.html),但在Ubuntu上有一些区别,这里是安装过程的记录。node
执行下面的命令,安装flannel网络驱动(是不一样pod互访必须的驱动,可选其它的网络驱动): git
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
!!!安装flannel网络出现pending挂起问题(podCidr参数丢失,即使在kubeadm运行时已指定):github
#查看日志: kubectl get pods --namespace kube-system kubectl --namespace kube-system logs kube-flannel-ds-bvxd2 #上面的kube-flannel-ds-bvxd2为flannel的pod名称,根据get pods返回的名称输入。 #编辑 /etc/kubernetes/manifests/kube-controller-manager.yaml 在command节,加入: - --allocate-node-cidrs=true - --cluster-cidr=10.244.0.0/16 而后systemctl restart kubelet便可。
该问题解决办法的详细参考:https://github.com/coreos/flannel/issues/728docker
运行下面的命令,安装Dashboard service pod:api
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
注意:浏览器
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml
查看安装结果状况:bash
kubectl get pod --namespaces kube-system
docker pull k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
将下面的内容保存为文件,如dashboard-rbac.yaml。网络
apiVersion: v1 kind: ServiceAccount metadata: name: dashboard namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: dashboard subjects: - kind: ServiceAccount name: dashboard namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
而后执行安装(所创建的帐号为dashboard):app
kubectl create -f dashboard-rbac.yaml
若是建立失败,可使用kubectl delete sa/podid-xxx --all-namespaces的方式删除,再从新运行上面的yaml文件进行安装。工具
kubectl delete sa/dashboard --namespace kube-system kubectl delete clusterrolebindings/dashboard --namespace kube-system
查看帐号是否成功创建:
kubectl get sa --all-namespaces
可使用端口转发或者kubelet内置的Web服务来提供后台服务。
kubectl port-forward kubernetes-dashboard-7798c48646-wkgk4 8443:8443 --namespace=kube-system &
kubectl proxy
打开浏览器,输入下面的URL地址,点击 Sign in
按钮进入登陆界面。
得到登陆受权的Token,运行:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard | awk '{print $1}')
返回结果以下所示:
Name: dashboard-token-kl5ns Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=dashboard kubernetes.io/service-account.uid=5832bfe3-219f-11e8-982a-0800275005f0 Type: kubernetes.io/service-account-token Data ==== namespace: 11 bytes token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtdG9rZW4ta2w1bnMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNTgzMmJmZTMtMjE5Zi0xMWU4LTk4MmEtMDgwMDI3NTAwNWYwIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZCJ9.OIo391SDxMDlnzHF0PYbAUNnS_QK9vdbyCx8ZBy3DAdBpBKaKq3U01sPX6H8w_UzP96Mu3Hhh3Xu8ar5nMi5AZLYcct9zR3LepOBdFTQ_YNTJNOjsqMuyD-dWYx6NoQW5lARRtjWSO2UAjrj7Mz4NsfWy8JDUEZZJQ31rtog-Bxgp8K_nxtJiCdROvvd6eM7zNEYOzxYJavsKARyGfJcBRZ6OgxfnH0-8PpwbMEy9qpIQw_sfxVPEaZ-z_y06CX6vbps_-JsFSBDjpVmQQBsNsBxz3Dwm0E8_T9V5z9T13HqUccuGydgp7bYz4PEbDBSD5-xbOIniBwniP3ak1mn_w ca.crt: 1025 bytes
将上面的token内容拷贝下来,而后进入Web界面的 token
,复制到Enter Token下面的编辑框中。
Kubernetes Dashboard运行起来的界面以下,能够查看信息,管理各类服务。