第13章 Kubernetes Dashboard
前面章节Kubernetes所有的操作我们都是通过命令行工具kubectl完成的。为了提供更丰富的用户体验,Kubernetes还开发了一个基于Web的Dashboard,用户可以用Kubernetes Dashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes的各种资源。
在Kubernetes Dashboard中可以查看集群中应用的运行状态,也能够创建和修改各种Kubernetes资源,比如Deployment、Job、DaemonSet等。用户可以Scale Up/Down Deployment、执行Rolling Update、重启某个Pod或者通过向导部署新的应用。Dashboard能显示集群中各种资源的状态以及日志信息。
可以说,Kubernetes Dashboard提供了kubectl的绝大部分功能,大家可以根据情况进行选择。
13.1 安装
Kubernetes默认没有部署Dashboard,可通过如下命令安装:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Dashboard会在kube-system namespace中创建自己的Deployment和Service,如图13-1所示。

图13-1
因为Service是ClusterIP类型,为了方便使用,我们可通过kubectl --namespace=kube-system edit service kubernetes-dashboard修改成NodePort类型,如图13-2所示。

图13-2
保存修改,此时已经为Service分配了端口31614,如图13-3所示。

图13-3
通过浏览器访问Dashboard https://192.168.56.105:31614/,登录界面如图13-4所示。

图13-4
13.2 配置登录权限
Dashboard支持Kubeconfig和Token两种认证方式,为了简化配置,我们通过配置文件dashboard-admin.yaml为Dashboard默认用户赋予admin权限,如图13-5所示。

图13-5
执行kubectl apply使之生效,如图13-6所示。

图13-6
现在直接单击登录页面中的SKIP就可以进入Dashboard了,如图13-7所示。

图13-7
13.3 Dashboard界面结构
Dashboard的界面很简洁,分为三个大的区域。
(1)顶部操作区,如图13-8所示。在这里用户可以搜索集群中的资源、创建资源或退出。

图13-8
(2)左边导航菜单。通过导航菜单可以查看和管理集群中的各种资源。菜单项按照资源的层级分为以下两类:

图13-9

图13-10
默认显示的是default Namespace,可以进行切换,如图13-11所示。

图13-11
(3)中间主体区。
在导航菜单中单击了某类资源,中间主体区就会显示该资源所有实例,比如单击Pods,如图13-12所示。

图13-12
13.4 典型使用场景
接下来我们介绍几个Dashboard的典型使用场景。
13.4.1 部署Deployment
单击顶部操作区的+CREATE按钮,如图13-13所示。

图13-13
用户可以直接输入要部署应用的名字、镜像、副本数等信息,也可以上传YAML配置文件。如果是上传配置文件,则可以创建任意类型的资源,而不仅仅是Deployment。
13.4.2 在线操作
对于每种资源,都可以单击按钮执行各种操作,如图13-14所示。

图13-14
例如,单击View/edit YAML,可直接修改资源的配置,保存后立即生效,其效果与kubectl edit一样,如图13-15所示。

图13-15
13.4.3 查看资源详细信息
单击某个资源实例的名字,可以查看详细信息,其效果与kubectl describe一样,如图13-16所示。

图13-16
13.4.4 查看Pod日志
在Pod及其父资源(DaemonSet、ReplicaSet等)页面单击
按钮,可以查看Pod的日志,其效果与kubectl logs一样,如图13-17所示。

图13-17
Kubernetes Dashboard界面设计友好,自解释性强,可以看作GUI版的kubectl,更多功能留给大家自己探索。
13.5 小结
本章介绍了Kubernetes Dashboard的安装和使用方法。Dashboard能完成日常管理的大部分工作,可以作为命令行工具kubectl的有益补充。