1、部署Dashboard用户界面
作为Kubernetes的Web用户界面,用户可以通过Dashboard在Kubernetes集群中部署容器化的应用,对应用进行问题处理和管理,并对集群本身进行管理。通过Dashboard,用户可以查看集群中应用的运行情况,同时也能够基于Dashboard创建或修改部署、任务、服务等Kubernetes的资源。通过部署向导,用户能够对部署进行扩缩容,进行滚动更新、重启Pod和部署新应用。当然,通过Dashboard也能够查看Kubernetes资源的状态。下面是部署Dashboard的过程:
1)下载kubernetes-dashboard.yaml文件
通过:https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml 地址,能够下载下载kubernetes-dashboard.yaml文件。
2)编辑kubernetes-dashboard.yaml文件
通过编辑工具打开kubernetes-dashboard.yaml,并在此文件中的Service部分下添加type: NodePort和nodePort: 30001,添加位置如下图所示。
3)通过执行如下的命令部署Web UI
# kubectl create -f {path}/kubernetes-dashboard.yaml
2、访问Dashboard用户界面
在Dashboard部署完成后,就可以服务
1)在浏览器中输入:https://{Master IP}:30001,此处为:https://10.0.32.175:3001,打开页面如下:
2)创建一个管理员用户
创建amind-user.yaml文件,文件内容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBinding metadata: name: admin-user annotations: rbac.authorization.kubernetes.io/autoupdate: "true" roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system
通过执行如下命令创建admin-user:
#kubectl create -f {path}/admin-user.yaml
3)获取管理员用户的Token
通过执行如下命令获取系统Token信息:
#kubectl describe secret admin-user --namespace=kube-system
4)添加Token至kubeconfig文件
通过编辑工具打开kubeconfig文件(~/.kube/config),并添加Token。
5)导入kubeconfig文件
在界面中导入kubeconfig文件。
3、使用Dashboard
3.1 Dashboard提供的功能
在默认情况下,Dashboard显示默认(default)命名空间下的对象,也可以通过命名空间选择器选择其他的命名空间。在Dashboard用户界面中能够显示集群大部分的对象类型。
1)集群管理
集群管理视图用于对节点、命名空间、持久化存储卷、角色和存储类进行管理。 节点视图显示CPU和内存的使用情况,以及此节点的创建时间和运行状态。 命名空间视图会显示集群中存在哪些命名空间,以及这些命名空间的运行状态。角色视图以列表形式展示集群中存在哪些角色,这些角色的类型和所在的命名空间。 持久化存储卷以列表的方式进行展示,可以看到每一个持久化存储卷的存储总量、访问模式、使用状态等信息;管理员也能够删除和编辑持久化存储卷的YAML文件。
2) 工作负载
工作负载视图显示部署、副本集、有状态副本集等所有的工作负载类型。在此视图中,各种工作负载会按照各自的类型进行组织。 工作负载的详细信息视图能够显示应用的详细信息和状态信息,以及对象之间的关系。
3) 服务发现和负载均衡
服务发现视图能够将集群内容的服务暴露给集群外的应用,集群内外的应用可以通过暴露的服务调用应用,外部的应用使用外部的端点,内部的应用使用内部端点。
4) 存储
存储视图显示被应用用来存储数据的持久化存储卷申明资源。
5) 配置
配置视图显示集群中应用运行时所使用配置信息,Kubernetes提供了配置字典(ConfigMaps)和秘密字典(Secrets),通过配置视图,能够编辑和管理配置对象,以及查看隐藏的敏感信息。
6) 日志视图
Pod列表和详细信息页面提供了查看日志视图的链接,通过日志视图不但能够查看Pod的日志信息,也能够查看Pod容器的日志信息。通过Dashboard能够根据向导创建和部署一个容器化的应用,当然也可以通过手工的方式输入指定应用信息,或者通过上传YAML和JSON文件来创建和不受应用。
3.2 部署应用
1)手动创建应用
通过向导创建和部署容器化应用时,需要提供如下的一些信息:
- 应用名称(App name 必需): 需要部署的应用的名称。带有此值的标签将会被添加至部署和服务中。在当前的Kubernetes命名空间中,应用名称必须是唯一的。同时,应用名称必须以小写字母开头,以小写字母和数字结尾,可以包含字母、数字和“-”。名称最长为24个字母。
- 容器组个数(Number of pods 必需): 希望部署的容器组数量。值必须为整数。
- 描述(Description): 对于应用的描述,将被添加至部署的注释中,并在应用详细信息中显示。
- 标签(Labels): 应用的默认标签为应用的名称和版本。可以指定其它的标签,这些标签将会被应用至部署、服务、容器组等资源中。
- 命名空间(Namespace):在同一个物理集群中,Kubernetes支持多个虚拟集群。这些虚拟集群被称为命名空间,通过命名空间可以将资源进行逻辑上的划分。通过下列菜单可以选择已有的命名空间,当然也可以创建新的命名空间。命名空间的名称最大的字符数为63,名词可以使用字母、数字“-”,不能包含大写字母,同时也不能全部使用数字。
- 镜像拉取保密字典(Image Pull Secret): 如果Docker容器镜像是私有的,则有可能需要保密证书。Dashboard通过下拉菜单提供了所有的可用的保密凭证,也允许创建新的保密字典。保密字典名称必须遵循DNS域名语法,例如:new.image-pull.secret。保密字典的内容必须使用基于base64进行加密的,并在.dockercfg文件中进行指定。保密字典名称最长不能超过253个字符。
- 环境变量(Environment variables): Kubernetes通过环境变量暴露服务, 可以创建环境变量或者使用环境变量的值将参数传递给命令。环境变量能够被应用用来发现服务,环境变量的值可以通过¥(VAR_NAME)语法被其它变量引用。
2)上传YAML或JSON文件创建应用
通过编译工具编写容器化应用的YAML和JSON文件,在Dashboard用户界面中通过上传文件创建和部署应用。
参考材料
- 《Web UI (Dashboard)》地址:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
作者简介:
季向远,北京神舟航天软件技术有限公司产品经理。本文版权归原作者所有。
您好,您安装dashboard 通过nodeport的端口暴露,访问dashboard是在对应的node节点上访问么,我在宿主机上访问虚拟机提示https的tls通道无法建立,我用wireshark抓包看到30001端口是通的,说明网络路由没有问题,估计是https的证书问题,请问您有这个问题么,您是怎么解决的,解决方案能否发我一下,317438587@qq.com 谢谢
我使用kubeadm安装版本1.9,也遇到了https证书问题,通过使用firefox浏览器55版本加入信任站点,可以打开页面。
但是我遇到了问题,我的环境不存在~/.kube/config文件,这使我很忧伤。不清楚区别在于版本还是kubeadm原因,自己创建用户admin-user,编写的kubeconfig文件,登陆进去后都是匿名用户