部署和访问 Kubernetes 仪表盘
Dashboard 是一个基于 Web 的 Kubernetes 用户界面。您可以使用 Dashboard 将容器化应用程序部署到 Kubernetes 集群,对容器化应用程序进行故障排除,以及管理集群资源。您可以使用 Dashboard 概述集群中运行的应用程序,以及创建或修改单个 Kubernetes 资源(例如部署、作业、守护进程集等)。例如,您可以扩展部署、启动滚动更新、重启 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 登录。要为此演示创建令牌,您可以按照我们的指南操作,该指南介绍了如何 创建示例用户。
警告
教程中创建的示例用户将拥有管理权限,仅用于教育目的。命令行代理
您可以使用 kubectl
命令行工具启用对 Dashboard 的访问,方法是运行以下命令
kubectl proxy
Kubectl 将使 Dashboard 在 https://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 上可用。
UI 只能从执行命令的机器访问。有关更多选项,请参见 kubectl proxy --help
。
注意
kubeconfig 身份验证方法 *不* 支持外部身份提供者或基于 X.509 证书的身份验证。欢迎视图
当您在空集群上访问 Dashboard 时,您将看到欢迎页面。此页面包含指向本文档的链接以及部署第一个应用程序的按钮。此外,您可以查看默认情况下在集群的 kube-system
命名空间 中运行的系统应用程序,例如 Dashboard 本身。
部署容器化应用程序
Dashboard 允许您使用简单的向导将容器化应用程序创建和部署为部署和可选服务。您可以手动指定应用程序详细信息,也可以上传包含应用程序配置的 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 支持由同一个物理集群支持的多个虚拟集群。这些虚拟集群称为 命名空间。它们允许您将资源划分为逻辑命名组。
Dashboard 在下拉列表中提供所有可用命名空间,并允许您创建新的命名空间。命名空间名称最多可以包含 63 个字母数字字符和连字符 (-),但不能包含大写字母。命名空间名称不应仅包含数字。如果名称设置为数字,例如 10,则 Pod 将被放入默认命名空间。
如果成功创建命名空间,则默认情况下会选择它。如果创建失败,则会选择第一个命名空间。
镜像拉取密钥:如果指定的 Docker 容器镜像是私有的,则可能需要 拉取密钥 凭据。
Dashboard 在下拉列表中提供所有可用密钥,并允许您创建新的密钥。密钥名称必须遵循 DNS 域名语法,例如
new.image-pull.secret
。密钥的内容必须进行 Base64 编码,并在.dockercfg
文件中指定。密钥名称最多可以包含 253 个字符。如果成功创建镜像拉取密钥,则默认情况下会选择它。如果创建失败,则不会应用任何密钥。
CPU 要求(核心)和内存要求(MiB):您可以指定容器的最小 资源限制。默认情况下,Pod 以无界 CPU 和内存限制运行。
运行命令和运行命令参数:默认情况下,您的容器运行指定的 Docker 镜像的默认 入口点命令。您可以使用命令选项和参数来覆盖默认值。
以特权模式运行:此设置决定 特权容器 中的进程是否等效于以 root 身份在主机上运行的进程。特权容器可以使用操纵网络堆栈和访问设备等功能。
环境变量:Kubernetes 通过 环境变量 暴露服务。您可以使用环境变量的值来组合环境变量或将参数传递给您的命令。它们可用于应用程序来查找服务。值可以使用
$(VAR_NAME)
语法引用其他变量。
上传 YAML 或 JSON 文件
Kubernetes 支持声明式配置。在这种风格中,所有配置都存储在清单中(YAML 或 JSON 配置文件)。清单使用 Kubernetes API 资源模式。
作为在部署向导中指定应用程序详细信息的替代方案,您可以在一个或多个清单中定义应用程序,并使用 Dashboard 上传文件。
使用 Dashboard
以下部分描述了 Kubernetes Dashboard UI 的视图;它们提供了什么以及如何使用它们。
导航
当集群中定义了 Kubernetes 对象时,Dashboard 会在初始视图中显示它们。默认情况下,仅显示来自 *default* 命名空间的对象,这可以通过导航菜单中的命名空间选择器进行更改。
Dashboard 显示大多数 Kubernetes 对象种类并将它们分组到几个菜单类别中。
管理员概述
对于集群和命名空间管理员,Dashboard 列出节点、命名空间和持久卷,并具有它们的详细信息视图。节点列表视图包含跨所有节点汇总的 CPU 和内存使用情况指标。详细信息视图显示节点的指标、其规范、状态、分配的资源、事件以及节点上运行的 Pod。
工作负载
显示在选定命名空间中运行的所有应用程序。该视图按工作负载种类(例如:部署、副本集、有状态集)列出应用程序。每个工作负载种类都可以单独查看。这些列表总结了有关工作负载的可操作信息,例如副本集的已就绪 Pod 数量或 Pod 的当前内存使用量。
工作负载的详细信息视图显示状态和规范信息,并呈现对象之间的关系。例如,副本集控制的 Pod 或部署的新副本集和水平 Pod 自动扩展器。
服务
显示 Kubernetes 资源,这些资源允许将服务暴露给外部世界并在集群内发现它们。因此,服务和 Ingress 视图显示以它们为目标的 Pod、用于集群连接的内部端点以及用于外部用户的外部端点。
存储
存储视图显示持久卷声明 (PersistentVolumeClaim) 资源,这些资源被应用程序用于存储数据。
配置映射和密钥
显示所有用于集群中运行的应用程序实时配置的 Kubernetes 资源。该视图允许编辑和管理配置对象,并显示默认情况下隐藏的密钥。
日志查看器
Pod 列表和详细信息页面链接到仪表板中内置的日志查看器。该查看器允许深入查看属于单个 Pod 的容器的日志。
下一步
有关更多信息,请参阅 Kubernetes 仪表板项目页面。