部署和访问 Kubernetes 仪表盘
Dashboard 是一个基于 Web 的 Kubernetes 用户界面。你可以使用 Dashboard 将容器化应用部署到 Kubernetes 集群、排查容器化应用问题以及管理集群资源。你可以使用 Dashboard 概览集群中运行的应用,也可以创建或修改单个 Kubernetes 资源(例如 Deployment、Job、DaemonSet 等)。例如,你可以扩展 Deployment、发起滚动更新、重启 Pod 或者使用部署向导部署新的应用。
Dashboard 还提供了有关集群中 Kubernetes 资源状态以及可能发生的任何错误的信息。
部署 Dashboard UI
注意
Kubernetes Dashboard 目前仅支持基于 Helm 的安装,因为它速度更快,并且能更好地控制 Dashboard 运行所需的所有依赖。Dashboard UI 默认不会部署。要部署它,请运行以下命令:
# Add kubernetes-dashboard repository
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# Deploy a Helm Release named "kubernetes-dashboard" using the kubernetes-dashboard chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
访问 Dashboard UI
为保护你的集群数据,Dashboard 默认部署时采用最小的 RBAC 配置。目前,Dashboard 仅支持使用 Bearer Token 登录。要为本示例创建 Token,你可以参照我们的指南创建示例用户。
警告
指南中创建的示例用户将具有管理权限,仅用于学习目的。命令行代理
你可以使用 kubectl
命令行工具访问 Dashboard,请运行以下命令:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
Kubectl 会使 Dashboard 可以在 https://localhost:8443 访问。
UI 只能 从执行命令的机器访问。有关更多选项,请参见 kubectl port-forward --help
。
注意
kubeconfig 认证方式不支持外部身份提供者或基于 X.509 证书的认证。欢迎视图
当你在一个空的集群上访问 Dashboard 时,你会看到欢迎页面。此页面包含指向本文档的链接以及部署你的第一个应用的按钮。此外,你可以查看默认在集群的 kube-system
命名空间 中运行的系统应用,例如 Dashboard 本身。
部署容器化应用
Dashboard 允许你使用简单的向导创建并部署容器化应用,将其作为 Deployment 和可选的 Service。你可以手动指定应用详细信息,或者上传包含应用配置的 YAML 或 JSON 清单(manifest)文件。
点击页面右上角的 CREATE 按钮开始。
指定应用详情
部署向导要求你提供以下信息:
应用名称(必需):你的应用的名称。如果会部署 Deployment 和 Service(如果存在),则会将带有该名称的标签添加到其中。
应用名称在选定的 Kubernetes 命名空间 中必须是唯一的。它必须以小写字符开头,以小写字符或数字结尾,并且只能包含小写字母、数字和短划线(-)。长度限制为 24 个字符。忽略前导和尾随空格。
容器镜像(必需):任何注册表上的公共 Docker 容器镜像 的 URL,或者私有镜像(通常托管在 Google Container Registry 或 Docker Hub 上)。容器镜像规范必须以冒号结尾。
Pod 数量(必需):你希望应用部署到的目标 Pod 数量。该值必须是正整数。
将创建一个Deployment来在你的集群中维护所需数量的 Pod。
Service(可选):对于你的应用的某些部分(例如前端),你可能希望将Service暴露到集群外部的公共 IP 地址(外部 Service)。
注意
对于外部 Service,你可能需要开放一个或多个端口才能这样做。其他仅在集群内部可见的 Service 被称为内部 Service。
无论 Service 类型如何,如果你选择创建一个 Service 并且你的容器监听一个端口(入站),你需要指定两个端口。创建 Service 时会将该端口(入站)映射到容器可见的目标端口。该 Service 会路由到你部署的 Pod。支持的协议是 TCP 和 UDP。此 Service 的内部 DNS 名称将是你上面指定的应用名称。
如果需要,可以展开高级选项部分,在其中指定更多设置:
描述:在此输入的文本将作为注解添加到 Deployment,并显示在应用详情中。
标签:你的应用使用的默认标签是应用名称和版本。你可以指定要应用到 Deployment、Service(如果存在)和 Pod 的额外标签,例如 release、environment、tier、partition 和 release track。
示例
release=1.0 tier=frontend environment=pod track=stable
命名空间:Kubernetes 支持由同一物理集群支持的多个虚拟集群。这些虚拟集群称为命名空间。它们允许你将资源划分为逻辑上命名的组。
Dashboard 在下拉列表中提供了所有可用的命名空间,并允许你创建一个新的命名空间。命名空间名称最多可包含 63 个字母数字字符和短划线(-),但不能包含大写字母。命名空间名称不应仅由数字组成。如果名称设置为数字,例如 10,则 Pod 将被放入默认命名空间。
如果命名空间创建成功,则默认选中它。如果创建失败,则选择第一个命名空间。
镜像拉取 Secret:如果指定的 Docker 容器镜像为私有镜像,则可能需要拉取 Secret 凭据。
Dashboard 在下拉列表中提供了所有可用的 Secret,并允许你创建一个新的 Secret。Secret 名称必须遵循 DNS 域名语法,例如
new.image-pull.secret
。Secret 的内容必须是 base64 编码的,并在.dockercfg
文件中指定。Secret 名称最多可包含 253 个字符。如果镜像拉取 Secret 创建成功,则默认选中它。如果创建失败,则不应用任何 Secret。
CPU 要求(核)和内存要求(MiB):你可以指定容器的最小资源限制。默认情况下,Pod 运行时的 CPU 和内存限制是无上限的。
运行命令和运行命令参数:默认情况下,你的容器运行指定的 Docker 镜像的默认入口点命令。你可以使用命令选项和参数来覆盖默认值。
以特权模式运行:此设置决定特权容器中的进程是否等同于在主机上以 root 用户运行的进程。特权容器可以使用操作网络堆栈和访问设备等功能。
环境变量:Kubernetes 通过环境变量暴露 Service。你可以组合环境变量或使用环境变量的值将参数传递给你的命令。它们可用于应用中以查找 Service。值可以使用
$(VAR_NAME)
语法引用其他变量。
上传 YAML 或 JSON 文件
Kubernetes 支持声明式配置。在这种风格中,所有配置都存储在清单(YAML 或 JSON 配置文件)中。清单使用 Kubernetes API 资源模式。
作为在部署向导中指定应用详细信息的替代方法,你可以在一个或多个清单中定义你的应用,然后使用 Dashboard 上传这些文件。
使用 Dashboard
以下部分描述了 Kubernetes Dashboard UI 的各个视图;它们提供了什么以及如何使用它们。
导航
当集群中定义了 Kubernetes 对象时,Dashboard 会在初始视图中显示它们。默认情况下,只显示来自 default 命名空间的对象,可以通过导航菜单中的命名空间选择器进行更改。
Dashboard 显示大多数 Kubernetes 对象类型,并将它们分组到几个菜单类别中。
管理概览
对于集群和命名空间管理员,Dashboard 列出了 Node、Namespace 和 PersistentVolume,并提供了它们的详细视图。节点列表视图包含跨所有节点聚合的 CPU 和内存使用量度量。详细视图显示节点的度量指标、其规范、状态、分配的资源、事件以及在该节点上运行的 Pod。
工作负载
显示在选定命名空间中运行的所有应用。该视图按工作负载类型(例如:Deployment、ReplicaSet、StatefulSet)列出应用。每种工作负载类型都可以单独查看。列表总结了有关工作负载的可操作信息,例如 ReplicaSet 的就绪 Pod 数量或 Pod 的当前内存使用量。
工作负载的详细视图显示状态和规范信息,并揭示对象之间的关系。例如,ReplicaSet 控制的 Pod,或者 Deployment 的新 ReplicaSet 和 HorizontalPodAutoscaler。
Service
显示允许将服务暴露给外部世界并在集群内部发现它们的 Kubernetes 资源。因此,Service 和 Ingress 视图显示它们所面向的 Pod、集群内部连接的内部端点以及外部用户的外部端点。
存储
存储视图显示应用用于存储数据的 PersistentVolumeClaim 资源。
ConfigMap 和 Secret
显示用于对集群中运行的应用进行实时配置的所有 Kubernetes 资源。该视图允许编辑和管理配置对象,并显示默认隐藏的 Secret。
日志查看器
Pod 列表和详情页链接到 Dashboard 内置的日志查看器。该查看器允许深入查看属于单个 Pod 的容器日志。
下一步
有关更多信息,请参见Kubernetes Dashboard 项目页面。