部署和访问 Kubernetes 仪表盘

部署并访问 Web UI (Kubernetes Dashboard)。

Dashboard 是一个基于 Web 的 Kubernetes 用户界面。你可以使用 Dashboard 将容器化应用部署到 Kubernetes 集群、排查容器化应用问题以及管理集群资源。你可以使用 Dashboard 概览集群中运行的应用,也可以创建或修改单个 Kubernetes 资源(例如 Deployment、Job、DaemonSet 等)。例如,你可以扩展 Deployment、发起滚动更新、重启 Pod 或者使用部署向导部署新的应用。

Dashboard 还提供了有关集群中 Kubernetes 资源状态以及可能发生的任何错误的信息。

Kubernetes Dashboard UI

部署 Dashboard UI

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

欢迎视图

当你在一个空的集群上访问 Dashboard 时,你会看到欢迎页面。此页面包含指向本文档的链接以及部署你的第一个应用的按钮。此外,你可以查看默认在集群的 kube-system 命名空间 中运行的系统应用,例如 Dashboard 本身。

Kubernetes Dashboard welcome page

部署容器化应用

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 会路由到你部署的 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 的容器日志。

Logs viewer

下一步

有关更多信息,请参见Kubernetes Dashboard 项目页面

最后修改时间 2024年九月03日 下午1:40 PST:Update web-ui-dashboard.md: Adopted new proxy command (21644e1c6f)