部署和访问 Kubernetes Dashboard
Dashboard 是一个基于 Web 的 Kubernetes 用户界面。你可以使用 Dashboard 将容器化应用部署到 Kubernetes 集群中,排查容器化应用故障,并管理集群资源。你可以使用 Dashboard 获取集群中运行应用的概览,以及创建或修改单个 Kubernetes 资源(如 Deployments、Jobs、DaemonSets 等)。例如,你可以扩缩 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 Token 登录。要为此演示创建令牌,你可以按照我们的指南创建示例用户。
警告
教程中创建的示例用户将拥有管理权限,仅供教育目的使用。命令行代理
你可以通过运行以下命令,使用 kubectl
命令行工具启用对 Dashboard 的访问:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
Kubectl 将使 Dashboard 可在 https://:8443 访问。
UI 只能从执行此命令的机器访问。有关更多选项,请参阅 kubectl port-forward --help
。
注意
kubeconfig 身份验证方法不支持外部身份提供商或基于 X.509 证书的身份验证。欢迎界面
当你在空集群上访问 Dashboard 时,你会看到欢迎页面。此页面包含指向本文档的链接以及用于部署你的第一个应用程序的按钮。此外,你可以查看集群 kube-system
命名空间中默认运行的系统应用程序,例如 Dashboard 本身。
部署容器化应用程序
Dashboard 允许你通过一个简单的向导,将容器化应用程序创建并部署为 Deployment 和可选的 Service。你可以手动指定应用程序详细信息,或上传包含应用程序配置的 YAML 或 JSON 清单文件。
点击任何页面右上角的创建按钮开始。
指定应用程序详细信息
部署向导要求你提供以下信息:
应用名称(必填):应用程序的名称。如果部署了 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,将端口(传入)映射到容器看到的目标端口。此 Service 将路由到你部署的 Pod。支持的协议是 TCP 和 UDP。此 Service 的内部 DNS 名称将是你上面指定的应用程序名称的值。
如果需要,你可以展开高级选项部分,在那里你可以指定更多设置:
描述:你在此处输入的文本将作为注解添加到 Deployment 中,并显示在应用程序的详细信息中。
标签:应用程序默认使用的标签是应用程序名称和版本。你可以指定要应用于 Deployment、Service(如果有)和 Pod 的额外标签,例如发布、环境、层级、分区和发布轨道。
示例
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。如果创建失败,则不应用任何 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 列出节点、命名空间和 PersistentVolume,并提供它们的详细视图。节点列表视图包含所有节点的 CPU 和内存使用指标汇总。详细视图显示节点的指标、其规范、状态、分配的资源、事件以及在该节点上运行的 Pod。
工作负载
显示在所选命名空间中运行的所有应用程序。该视图按工作负载类型(例如:Deployments、ReplicaSets、StatefulSets)列出应用程序。每种工作负载类型都可以单独查看。列表汇总了有关工作负载的可操作信息,例如 ReplicaSet 的就绪 Pod 数量或 Pod 的当前内存使用情况。
工作负载的详细视图显示状态和规范信息,并显示对象之间的关系。例如,ReplicaSet 控制的 Pod 或 Deployment 的新 ReplicaSet 和 HorizontalPodAutoscaler。
服务
显示允许将服务暴露给外部世界并在集群中发现它们的 Kubernetes 资源。因此,Service 和 Ingress 视图显示它们所针对的 Pod、集群连接的内部端点和外部用户的外部端点。
存储
存储视图显示应用程序用于存储数据的 PersistentVolumeClaim 资源。
ConfigMaps 和 Secrets
显示所有用于实时配置集群中运行的应用程序的 Kubernetes 资源。该视图允许编辑和管理配置对象,并显示默认隐藏的 Secret。
日志查看器
Pod 列表和详细信息页面链接到 Dashboard 中内置的日志查看器。该查看器允许深入查看属于单个 Pod 的容器的日志。
下一步
有关更多信息,请参阅 Kubernetes Dashboard 项目页面。