Kubernetes Dashboard17 Mar 2025 | 6 分钟阅读 Dashboard 可以定义为 Kubernetes 的一个基于 Web 的用户界面。我们可以使用 Dashboard 将容器化应用程序部署到任何 Kubernetes 集群,管理集群资源,并对容器化应用程序进行故障排除。 我们可以使用 Dashboard 获取集群上运行的应用程序的概览。我们还可以创建或修改 Kubernetes 的单个资源(包括 DaemonSets、Jobs、Deployments 等)。例如,我们可以启动滚动更新、扩展部署、重启任何 Pod,或使用部署向导来扩展新应用程序。 Dashboard 还提供了关于我们集群中 Kubernetes 资源状态以及可能出现的错误的信息。 Dashboard UI 部署默认情况下,Dashboard UI 未部署。运行以下命令进行部署 kubectl apply https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml 访问 Dashboard UI默认情况下,Dashboard 展开时具有较少的 RBAC 配置来保护我们的数据。Dashboard 目前仅支持使用 Bearer token 登录。 命令行代理我们可以通过一个名为 kubectl 的命令行工具来访问 Kubernetes Dashboard,执行以下命令 UI 只能通过运行命令的机器访问。 注意:Kubeconfig 认证技术不支持 x509 证书身份验证或外部身份提供者。欢迎视图如果我们访问一个空的集群上的 Dashboard,可能会出现一个欢迎页面。它包含文档链接以及部署第一个应用程序的按钮。我们可以默认认为系统应用程序在集群的 kube-system 命名空间中运行,例如 Dashboard 本身。 部署容器化应用程序Dashboard 使我们能够通过一个通用的向导来创建和部署容器化应用程序,将其作为 Deployment 和其他 Service。我们可以上传一个包含应用程序配置的 JSON 或 YAML 文件,或手动指定应用程序的详细信息。 要开始,请按页面右上角的 CREATE 按钮。 指定应用程序信息部署向导假定我们提供了以下详细信息 - 应用程序名称(必需): 应用程序的名称。一个带有名称的标签将被包含在 Service 中,并且 Deployment 将被部署。
应用程序名称在所选的 Kubernetes 命名空间中应具有唯一性。它应该以小写字母开头,并以小写字母或数字结尾。它仅包含小写字母、连字符和数字。最多限制为 24 个字符。避免前后空格。 - 容器镜像(必需): 任何公共 Docker 容器镜像的 URL,可以是私有镜像或仓库(通常托管在 Docker Hub 或 Google Container Registry 上)。容器镜像的规范必须以冒号结尾。
- Pod 数量(必需): 我们希望应用程序部署到的 Pod 的目标数量。该值应为任何正整数。
将创建一个 Deployment 来在我们的集群中维护所需的 Pod 数量。 - Service(可选): 我们可能希望将一个 Service 公开给集群外部的公共或外部 IP 地址(外部 Service),用于我们应用程序的某些部分(例如前端)。
其他仅在集群内可见的服务称为内部 Service。 如果我们选择创建一个 Service,并且我们的容器侦听传入端口,那么我们需要描述两个端口,无论 Service 类型如何。Service 将用于将传入端口映射到容器正在侦听的目标端口。Service 将路由到我们部署的 Pod。一些支持的协议包括 UDP 和 TCP。Service 的内部 DNS 名称将是我们上面指定的应用程序名称。
注意:为了实现某些外部 Service 的功能,我们可能需要打开多个端口。如果需要,我们可以展开“高级选项”部分,在那里我们可以描述各种设置  - 描述: 在这里输入的文本将作为 Deployment 的注解,并显示在应用程序的详细信息中。
- 标签: 应用于我们应用程序的各种默认标签是应用程序的版本和名称。我们可以指定其他附加标签,用于 Service(如果存在)、Deployment 和 Pod,如发布轨道、分区、层、环境和版本。
例如: release=1.0 tier=frontend environment=pod track=stable - 镜像拉取 Secret: 在指定条件下,定义的 Docker 容器是 Secret。它可能需要拉取 Secret 推荐。
Dashboard 在下拉列表中提供了所有可能的 Secret。它允许我们创建新的 Secret。Secret 名称应遵循 DNS 域名语法,例如,new.image-pull.secret。Secret 内容应在 .dockercfg 文件中指定,并进行 base64 编码。此 Secret 名称最多可以包含 253 个字符。 如果镜像拉取 Secret 创建成功,则默认选中。如果创建失败,则不应用任何 Secret。 - 命名空间: Kubernetes 支持在一个物理集群上批准的多个虚拟集群。这些虚拟集群称为命名空间。它们使我们能够将资源逻辑地划分为命名组。
Dashboard 在下拉列表中提供了所有可能的命名空间。它允许我们创建新的命名空间。命名空间名称最多可以包含 63 个字母数字字符和连字符,但不能包含大写字母。 命名空间名称不得仅包含数字。如果名称被固定为任何数字,例如 10,则 Pod 将被设置为默认命名空间。 如果命名空间创建成功,则默认选中。如果创建失败,则选中初始命名空间。 - 内存要求(MiB)和 CPU 要求(cores): 我们可以为容器定义资源限制。默认情况下,Pod 以无限制的内存和 CPU 运行。
- 运行命令参数和运行命令: 我们的容器默认执行 Docker 镜像的默认入口点命令。我们可以应用命令参数和选项来覆盖默认设置。
- 环境变量: Kubernetes 通过环境变量公开 Service。我们可以使用环境变量的值为我们的命令传递参数并构造环境变量。它们可以在应用程序内部用于查找 Service。使用语法,即 $(VAR_NAME),值可以引用许多其他变量。
- 以特权模式运行: 它决定了特权容器中的进程是否等同于主机上的 root 进程。特权容器可以使用访问设备和管理网络堆栈等功能。
上传 JSON 或 YAML 文件Kubernetes 支持声明式配置。所有配置都以这种方式存储在 JSON 或 YAML 配置文件中,并使用 Kubernetes API 的资源模式。 我们可以用 JSON 或 YAML 文件定义我们的应用程序,并通过 Dashboard 上传这些文件,而不是在部署向导中指定应用程序的详细信息。 使用 Dashboard以下要点说明了 Kubernetes Dashboard UI 的视图;如何应用它们以及它们提供了什么 导航如果集群中指定了任何 Kubernetes 对象,Dashboard 将在起始视图中显示。默认情况下,仅显示默认命名空间中的对象,并且可以使用导航菜单中的命名空间选择器进行修改。 Dashboard 显示大多数类型的 Kubernetes 对象,并将它们收集在一些菜单类别中。 管理员概览详细视图显示了任何节点的指标、其状态、规范、Pod、事件以及在节点上运行的已分配资源。 工作负载它显示了在选定命名空间中运行的所有应用程序。应用程序通过工作负载类型(如 Stateful Sets、Replica Sets、Deployments 等)进行分组显示,并且可以单独查看所有工作负载类型。 服务Services 说明了允许将服务暴露给外部世界并将它们隐藏在集群中的 Kubernetes 资源。 存储存储视图说明了应用程序用于存储信息的 Persistent Volume Claim 功能。 配置 Secrets 和 Maps这些用于说明在集群中运行的应用程序的实时配置所应用的所有 Kubernetes 资源。该视图允许管理和编辑配置对象,并默认显示未公开的 Secrets。 日志查看器详细页面和 Pod 列表链接到日志查看器。它内置于 Dashboard 中。该查看器允许通过单个 Pod 中的容器深入查看日志。
|