Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群本身及其附属资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
默认情况下不会部署 Dashboard。可以通过以下命令部署:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
访问 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
。
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 自己。
通过一个简单的部署向导,您可以使用 Dashboard 将容器化应用作为一个 Deployment 和可选的 Service 进行创建和部署。可以手工指定应用的详细配置,或者上传一个包含应用配置的 YAML 或 JSON 文件。
想要访问部署向导,可以点击欢迎界面上的各个部署按钮。向导也可以之后通过点击任何页面右上角的 创建 按钮进行快速访问。
部署向导需要您提供以下信息:
应用名称
的标签 会被添加到任何将被部署的 Deployment 和 Service。在选定的 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。
$(VAR_NAME)
语法关联其他变量。Kubernetes 支持声明式配置。所有的配置都存储在遵循 Kubernetes API 架构的 YAML 或者 JSON 配置文件中。
作为一种替代在部署向导中指定应用详情的方式,您可以在 YAML 或者 JSON 文件中定义应用,并且使用 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。
Pod 列表和详细信息页面可以链接到 Dashboard 内置的日志查看器。查看器可以钻取属于同一个 Pod 的不同容器的日志。
更多信息,参见 Kubernetes Dashboard 项目页面.
此页是否对您有帮助?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.