Kubernetes-DashBoard用户界面

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)添加Tokenkubeconfig文件

通过编辑工具打开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用户界面中通过上传文件创建和部署应用。

 

参考材料

  1. 《Web UI (Dashboard)》地址:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

作者简介:
季向远,北京神舟航天软件技术有限公司产品经理。本文版权归原作者所有。

K8S中文社区微信公众号

评论 2

登录后评论

立即登录  

  1. #2

    您好,您安装dashboard 通过nodeport的端口暴露,访问dashboard是在对应的node节点上访问么,我在宿主机上访问虚拟机提示https的tls通道无法建立,我用wireshark抓包看到30001端口是通的,说明网络路由没有问题,估计是https的证书问题,请问您有这个问题么,您是怎么解决的,解决方案能否发我一下,317438587@qq.com 谢谢

    流浪的猪猪6年前 (2018-10-31)
  2. #1

    我使用kubeadm安装版本1.9,也遇到了https证书问题,通过使用firefox浏览器55版本加入信任站点,可以打开页面。
    但是我遇到了问题,我的环境不存在~/.kube/config文件,这使我很忧伤。不清楚区别在于版本还是kubeadm原因,自己创建用户admin-user,编写的kubeconfig文件,登陆进去后都是匿名用户

    WD6年前 (2018-12-12)