任务

Edit This Page

Web UI (Dashboard)

Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群本身及其附属资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。

Kubernetes Dashboard UI

部署 Dashboard UI

默认情况下不会部署 Dashboard。可以通过以下命令部署:

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

访问 Dashboard UI

访问 Dashboard UI 有多种方式;可以使用 kubectl 命令行,或者使用浏览器访问 Kubernetes 主节点的 API 服务器。

命令行代理

您可以使用 kubectl 命令行工具访问 Dashboard,命令如下:

kubectl proxy

kubectl 会处理与 API 服务器的认证过程,并使得 Dashboard 可以通过 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ 访问。

UI 只能 通过执行这条命令的机器进行访问。更多选项参见 kubectl proxy --help

主节点 API 服务器

UI 可以直接通过 Kubernetes 主节点上的 API 服务器访问。打开浏览器,输入 https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/,其中 <<master-ip> 是 Kubernetes 主服务器的 IP 地址或域名。

请注意,只有当 API 服务器允许使用用户名密码认证时,这种方式才可以正常工作。但目前对于安装工具(如 kubeadm)来说并非如此。关于如何手工设置,参见 认证管理文档

如果您不知道配置的用户名密码,可以使用 kubectl config view 查询。

欢迎界面

当访问空集群的 Dashboard 时,您会看到欢迎界面。页面包含一个指向此文档的链接,以及一个用于部署第一个应用程序的按钮。此外,您可以看到在默认情况下有哪些默认系统应用运行在 kube-system 命名空间 中,比如 Dashboard 自己。

Kubernetes Dashboard 欢迎页面

部署容器化应用

通过一个简单的部署向导,您可以使用 Dashboard 将容器化应用作为一个 Deployment 和可选的 Service 进行创建和部署。可以手工指定应用的详细配置,或者上传一个包含应用配置的 YAML 或 JSON 文件。

想要访问部署向导,可以点击欢迎界面上的各个部署按钮。向导也可以之后通过点击任何页面右上角的 创建 按钮进行快速访问。

部署向导

指定应用的详细配置

部署向导需要您提供以下信息:

在选定的 Kubernetes 命名空间 中,应用名称必须唯一。必须由小写字母开头,以数字或者小写字母结尾,并且只含有小写字母、数字和中划线(-)。小于等于24个字符。开头和结尾的空格会被忽略。

系统会创建一个 Deployment 用于保证集群中运行了期望的 Pod 数量。

其它只能对集群内部可见的 Service 称为内部 Service。

不管哪种 Service 类型,如果您选择创建一个 Service,而且容器在一个端口上开启了监听(入向的),那么您需要定义两个端口。创建的 Service 会把(入向的)端口映射到容器可见的目标端口。该 Service 会把流量路由到您部署的 Pod。支持的协议有 TCP 和 UDP。这个 Service 的内部 DNS 解析名就是之前您定义的应用名称的值。

如果需要,您可以打开 高级选项 部分,这里您可以定义更多设置:

例子:

   release=1.0
   tier=frontend
   environment=pod
   track=stable

Dashboard 通过下拉菜单提供所有可用的命名空间,并允许您创建新的命名空间。命名空间的名称最长可以包含 63 个字母或数字和中横线(-),但是不能包含大写字母。 命名空间的名称不能只包含数字。如果名字被设置成一个数字,比如 10,pod 就会被放在默认的命名空间中。

在 namespace 创建成功的情况下,默认会使用新创建的命名空间。如果创建失败,那么第一个命名空间会被选中。

Dashboard 通过下拉菜单提供所有可用的 secret,并允许您创建新的 secret。secret 名称必须遵循 DNS 域名语法,比如 new.image-pull.secret。secret 的内容必须是 base64 编码的,并且在一个 .dockercfg 文件中声明。secret 名称最大可以包含 253 个字符。

在镜像拉取 secret 创建成功的情况下,默认会使用新创建的 secret。如果创建失败,则不会使用任何 secret。

上传 YAML 或者 JSON 文件

Kubernetes 支持声明式配置。所有的配置都存储在遵循 Kubernetes API 架构的 YAML 或者 JSON 配置文件中。

作为一种替代在部署向导中指定应用详情的方式,您可以在 YAML 或者 JSON 文件中定义应用,并且使用 Dashboard 上传文件:

部署向导中上传文件

使用 Dashboard

以下各节描述了 Kubernetes Dashboard UI 视图;包括它们提供的内容,以及怎么使用它们。

导航栏

当在集群中定义 Kubernetes 对象时,Dashboard 会在初始视图中显示它们。默认情况下只会显示 默认 命名空间中的对象,可以通过更改导航栏菜单中的命名空间筛选器进行改变。

Dashboard 展示大部分 Kubernetes 对象,并将它们分组放在几个菜单类别中。

管理

集群和命名空间管理的视图。它会列出节点、命名空间和持久卷,并且有它们的详细视图。节点列表视图包含从所有节点聚合的 CPU 和内存使用的度量值。详细信息视图显示了一个节点的度量值,它的规格、状态、分配的资源、事件和这个节点上运行的 Pod。

节点详细信息视图

负载

入口视图显示选中的命名空间中所有运行的应用。视图按照负载类型(如 Deployment、ReplicaSet、StatefulSet 等)罗列应用,并且每种负载都可以单独查看。列表总结了关于负载的可执行信息,比如一个 ReplicaSet 的准备状态的 Pod 数量,或者目前一个 Pod 的内存使用量。

负载视图

工作负载的详情视图展示了对象的状态、详细信息和相互关系。例如,ReplicaSet 所控制的 Pod,或者 Deployment 关联的 新 ReplicaSet 和 Pod 水平扩展控制器。

部署详情视图

服务发现

服务发现视图展示允许暴露给外网服务和允许集群内部发现的 Kubernetes 资源。因此,Service 和 Ingress 视图展示他们关联的 Pod、给集群连接使用的内部端点和给外部用户使用的外部端点。

服务列表部分视图

存储

存储视图展示持久卷申领(PVC)资源,这些资源被应用程序用来存储数据。

配置

配置视图展示的所有 Kubernetes 资源是在集群中运行的应用程序的实时配置。目前来说就是 ConfigMap 和 Secret。通过这个视图可以编辑和管理配置对象,并显示那些默认隐藏的 secret。

Secret 详情视图

日志查看器

Pod 列表和详细信息页面可以链接到 Dashboard 内置的日志查看器。查看器可以钻取属于同一个 Pod 的不同容器的日志。

日志浏览

接下来

更多信息,参见 Kubernetes Dashboard 项目页面.

反馈