部署和访问 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 令牌登录。要为此演示创建一个令牌,您可以按照我们的创建示例用户指南进行操作。
警告
教程中创建的示例用户将具有管理权限,仅用于教育目的。命令行代理
您可以通过运行以下命令,使用 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 让您可以通过简单的向导创建和部署容器化应用程序作为 Deployment 和可选的 Service。您可以手动指定应用程序详细信息,也可以上传包含应用程序配置的 YAML 或 JSON 清单文件。
单击任何页面右上角的 创建 按钮即可开始。
指定应用程序详细信息
部署向导希望您提供以下信息
应用程序名称 (必填):您的应用程序的名称。一个带有该名称的 标签将添加到要部署的 Deployment 和 Service(如果有)。
应用程序名称在所选 Kubernetes 命名空间中必须是唯一的。它必须以小写字符开头,以小写字符或数字结尾,并且只包含小写字母、数字和破折号 (-)。它限制为 24 个字符。开头和结尾的空格将被忽略。
容器镜像 (必填):任何注册表上的公共 Docker 容器镜像的 URL,或私有镜像(通常托管在 Google 容器注册表或 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=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 通过 环境变量 公开 Service。您可以使用环境变量的值来组成环境变量或将参数传递给命令。它们可以在应用程序中用于查找 Service。值可以使用
$(VAR_NAME)
语法引用其他变量。
上传 YAML 或 JSON 文件
Kubernetes 支持声明式配置。在这种风格中,所有配置都存储在清单中(YAML 或 JSON 配置文件)。清单使用 Kubernetes API 资源模式。
作为在部署向导中指定应用程序详细信息的替代方法,您可以在一个或多个清单中定义您的应用程序,并使用 Dashboard 上传文件。
使用 Dashboard
以下各节介绍 Kubernetes Dashboard UI 的视图;它们提供什么以及如何使用它们。
导航
当集群中定义了 Kubernetes 对象时,Dashboard 会在初始视图中显示它们。默认情况下,仅显示来自 default 命名空间的对象,可以使用位于导航菜单中的命名空间选择器来更改此设置。
Dashboard 显示大多数 Kubernetes 对象类型,并将它们分组在几个菜单类别中。
管理员概述
对于集群和命名空间管理员,Dashboard 列出节点、命名空间和持久卷,并具有它们的详细信息视图。节点列表视图包含在所有节点上汇总的 CPU 和内存使用率指标。详细信息视图显示节点的指标、其规范、状态、已分配资源、事件以及在节点上运行的 Pod。
工作负载
显示所选命名空间中运行的所有应用程序。该视图按工作负载类型(例如:Deployments、ReplicaSets、StatefulSets)列出应用程序。每种工作负载类型都可以单独查看。列表汇总了有关工作负载的可操作信息,例如 ReplicaSet 的就绪 Pod 数量或 Pod 的当前内存使用情况。
工作负载的详细视图显示状态和规范信息,以及对象之间的关系。例如,ReplicaSet 控制的 Pod,或者 Deployments 的新 ReplicaSets 和 HorizontalPodAutoscalers。
服务
显示允许将服务暴露给外部世界并在集群内发现它们的 Kubernetes 资源。因此,Service 和 Ingress 视图显示它们所针对的 Pod,用于集群连接的内部端点以及用于外部用户的外部端点。
存储
存储视图显示应用程序用于存储数据的 PersistentVolumeClaim 资源。
ConfigMaps 和 Secrets
显示用于实时配置集群中运行的应用程序的所有 Kubernetes 资源。该视图允许编辑和管理配置对象,并默认隐藏 secrets。
日志查看器
Pod 列表和详细信息页面链接到内置于 Dashboard 的日志查看器。该查看器允许深入查看属于单个 Pod 的容器的日志。
下一步是什么
有关更多信息,请参阅 Kubernetes Dashboard 项目页面。