部署和访问 Kubernetes 仪表板

部署 Web UI(Kubernetes 仪表盘)并访问它。

仪表盘是一个基于 Web 的 Kubernetes 用户界面。您可以使用仪表盘将容器化应用程序部署到 Kubernetes 集群,对容器化应用程序进行故障排除,以及管理集群资源。您可以使用仪表盘来概述在集群上运行的应用程序,以及创建或修改单个 Kubernetes 资源(例如部署、作业、守护进程集等)。例如,您可以扩展部署,启动滚动更新,重新启动 Pod 或使用部署向导部署新应用程序。

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

Kubernetes Dashboard UI

部署仪表盘 UI

仪表盘 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

访问仪表盘 UI

为了保护您的集群数据,仪表盘默认情况下会以最小的 RBAC 配置进行部署。目前,仪表盘仅支持使用 Bearer 令牌登录。要为此演示创建令牌,您可以按照我们的指南进行操作 创建示例用户.

命令行代理

您可以通过运行以下命令,使用 kubectl 命令行工具启用对仪表盘的访问

kubectl proxy

Kubectl 将使仪表盘在 https://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 可用。

UI 只能从执行命令的机器访问。有关更多选项,请参见 kubectl proxy --help

欢迎视图

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

Kubernetes Dashboard welcome page

部署容器化应用程序

仪表盘允许您使用简单的向导将容器化应用程序创建和部署为部署和可选服务。您可以手动指定应用程序详细信息,也可以上传包含应用程序配置的 YAML 或 JSON 清单 文件。

单击任何页面右上角的 创建 按钮开始。

指定应用程序详细信息

部署向导期望您提供以下信息

  • 应用程序名称(必填):应用程序的名称。将使用该名称的 标签 添加到将要部署的部署和服务(如果有)。

    应用程序名称在选定的 Kubernetes 命名空间 中必须是唯一的。它必须以小写字母开头,并以小写字母或数字结尾,并且仅包含小写字母、数字和连字符 (-)。它限制为 24 个字符。开头和结尾的空格将被忽略。

  • 容器镜像(必填):任何注册表上的公共 Docker 容器镜像 的 URL,或私有镜像(通常托管在 Google Container Registry 或 Docker Hub 上)。容器镜像规范必须以冒号结尾。

  • Pod 数量(必填):您希望应用程序部署到的 Pod 的目标数量。该值必须是正整数。

    将创建一个 部署 来维护整个集群中所需的 Pod 数量。

  • 服务(可选):对于应用程序的某些部分(例如前端),您可能希望将 服务 公开到集群外部的外部(可能为公共)IP 地址(外部服务)。

    仅在集群内部可见的其他服务称为内部服务。

    无论服务类型如何,如果您选择创建服务并且您的容器侦听端口(传入),您都需要指定两个端口。服务将创建映射端口(传入)到容器看到的目标端口。此服务将路由到您部署的 Pod。支持的协议为 TCP 和 UDP。此服务的内部 DNS 名称将是您在上面指定为应用程序名称的值。

如果需要,您可以展开 高级选项 部分,您可以在其中指定更多设置

  • 描述:您在此处输入的文本将作为 注释 添加到部署中,并在应用程序的详细信息中显示。

  • 标签:用于应用程序的默认 标签 是应用程序名称和版本。您可以指定要应用于部署、服务(如果有)和 Pod 的其他标签,例如发布、环境、层级、分区和发布轨道。

    示例

    release=1.0
    tier=frontend
    environment=pod
    track=stable
    
  • 命名空间:Kubernetes 支持由同一个物理集群支持的多个虚拟集群。这些虚拟集群称为 命名空间。它们允许您将资源划分为逻辑上命名的组。

    仪表盘在下拉列表中提供所有可用命名空间,并允许您创建新的命名空间。命名空间名称最多可以包含 63 个字母数字字符和连字符 (-),但不能包含大写字母。命名空间名称不应仅包含数字。如果名称设置为数字,例如 10,则 Pod 将被放入默认命名空间。

    如果命名空间创建成功,则默认情况下会选择它。如果创建失败,则会选择第一个命名空间。

  • 镜像拉取密钥:如果指定的 Docker 容器镜像是私有的,则可能需要 拉取密钥 凭据。

    仪表盘在下拉列表中提供所有可用密钥,并允许您创建新的密钥。密钥名称必须遵循 DNS 域名语法,例如 new.image-pull.secret。密钥的内容必须是 base64 编码的,并在 .dockercfg 文件中指定。密钥名称最多可以包含 253 个字符。

    如果镜像拉取密钥创建成功,则默认情况下会选择它。如果创建失败,则不会应用任何密钥。

  • CPU 需求(核心)内存需求(MiB):您可以指定容器的最小 资源限制。默认情况下,Pod 以无限制的 CPU 和内存限制运行。

  • 运行命令运行命令参数:默认情况下,您的容器运行指定的 Docker 镜像的默认 入口点命令。您可以使用命令选项和参数来覆盖默认值。

  • 以特权模式运行:此设置确定 特权容器 中的进程是否等效于以 root 身份在主机上运行的进程。特权容器可以使用诸如操作网络堆栈和访问设备之类的功能。

  • 环境变量:Kubernetes 通过 环境变量 公开服务。您可以使用环境变量的值来组合环境变量或将参数传递给您的命令。它们可以在应用程序中用于查找服务。值可以使用 $(VAR_NAME) 语法引用其他变量。

上传 YAML 或 JSON 文件

Kubernetes 支持声明式配置。在这种风格中,所有配置都存储在清单(YAML 或 JSON 配置文件)中。清单使用 Kubernetes API 资源模式。

作为在部署向导中指定应用程序详细信息的替代方法,您可以在一个或多个清单中定义您的应用程序,并使用仪表盘上传这些文件。

使用仪表盘

以下部分描述了 Kubernetes 仪表盘 UI 的视图;它们提供了什么以及如何使用它们。

当集群中定义了 Kubernetes 对象时,仪表盘会在初始视图中显示它们。默认情况下,仅显示来自 默认 命名空间的对象,这可以通过位于导航菜单中的命名空间选择器来更改。

仪表盘显示大多数 Kubernetes 对象类型,并将它们分组到几个菜单类别中。

管理员概述

对于集群和命名空间管理员,仪表盘列出节点、命名空间和持久卷,并为它们提供详细视图。节点列表视图包含跨所有节点汇总的 CPU 和内存使用情况指标。详细信息视图显示节点的指标、其规范、状态、分配的资源、事件以及在节点上运行的 Pod。

工作负载

显示在选定命名空间中运行的所有应用程序。该视图按工作负载类型(例如:部署、副本集、有状态集)列出应用程序。每个工作负载类型都可以单独查看。列表总结了有关工作负载的可操作信息,例如副本集的准备就绪 Pod 数量或 Pod 的当前内存使用情况。

工作负载的详细信息视图显示状态和规范信息,并显示对象之间的关系。例如,副本集控制的 Pod 或部署的新副本集和水平 Pod 自动缩放器。

服务

显示 Kubernetes 资源,这些资源允许将服务公开到外部世界并在集群内发现它们。因此,服务和入口视图显示了它们的目标 Pod、用于集群连接的内部端点以及用于外部用户的外部端点。

存储

存储视图显示持久卷声明资源,这些资源被应用程序用于存储数据。

ConfigMaps 和密钥

显示用于集群中运行的应用程序实时配置的所有 Kubernetes 资源。该视图允许编辑和管理配置对象,并显示默认情况下隐藏的秘密。

日志查看器

Pod 列表和详细信息页面链接到 Dashboard 中内置的日志查看器。查看器允许深入查看属于单个 Pod 的容器的日志。

Logs viewer

下一步

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

上次修改时间:2024 年 4 月 5 日下午 11:17 PST:更新 web-ui-dashboard.md (6c409b3e75)