Dashboard是Kubernetes的基本Web管理工具。Dashboard 1.x系列只能用于Kubernetes 1.16之前的版本。从Kubernetes 1.16开始,须要使用Dashboard 2,其部署方式有较大的变化。这里介绍在Kubernetes 1.17.0来部署管理界面Dashboard 2的方法和步骤。git
若是尚未安装CNI驱动,可使用下面的命令来装个flannel虚拟网络驱动。github
先获取镜像:docker
docker pull quay.io/coreos/flannel:v0.11.0-amd64
而后,安装:api
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
拉取Dashboard的images:网络
docker pull kubernetesui/metrics-scraper:v1.0.1 docker pull kubernetesui/dashboard:v2.0.0-beta8
包括建立服务帐号、设置服务帐号的role、获取token等步骤。app
建立一个Service Account,命名为 admin-user,放在
namespace kubernetes-dashboard
中。工具
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard
将上面内容保存为文件dashboard-adminuser.yaml。网站
大部分状况下,使用 kops
或 kubeadm
部署集群后, ClusterRole
admin-Role
已经在集群中存在,咱们可使用它,仅须要建立 ClusterRoleBinding
到咱们的 ServiceAccount。
ui
注意: apiVersion
of ClusterRoleBinding
资源在不一样的 Kubernetes 版本中多是不同的。Kubernetes v1.8
以前apiVersion
是 rbac.authorization.k8s.io/v1beta1。
spa
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: kubernetes-dashboard
将上面的内容保存到文件dashboard-adminrole.yaml。
首先,应用上面的两个文件。以下:
kubectl apply -f dashboard-adminuser.yaml kubectl apply -f dashboard-adminrole.yaml
找到 token 来登录Dashboard的Web界面。执行下面的命令:
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
将token内容拷贝下来,在下面的 WebUI中使用。
须要将Dashboard的服务暴露出来让客户端访问,包括运行代理和使用NodePort方法,还可使用Ingress等方法,这里不介绍,能够参考:
运行代理服务:
$ kubectl proxy
而后打开下面的链接:
在页面中选择token模式登录,而后填入上面步骤复制的token便可。
使用kubectl get svc/dashboardxxxxx -n kubernetes-dashboard来获取dashboard的服务ID。
使用kubectl edit svc/dashboardxxxxx -n kubernetes-dashboard来编辑服务的参数,将网络类型改成NodePort,并增长端口30800。
而后打开 http://localhost:30800 便可访问。
在页面中选择token模式登录,而后填入上面步骤复制的token便可。