Kubernetes Dashboard是一个能够管理Kubernetes集群的Web UI。它允许开发人员和管理员通过图形化用户界面轻松地查看、管理和监控集群的状态,包括应用程序、节点、存储、网络等各方面的信息。
Kubernetes Dashboard 提供了以下功能:
1.资源查看:可以查看节点、Pod、服务、部署等 Kubernetes 集群中的所有资源。
3.日志查看:可以查看容器的日志和事件。
4.健康状况:可以查看 Pod、节点和服务的健康状况。
5.可视化度量:可以使用可视化工具来查看集群中的度量数据,例如 CPU、内存和网络使用情况等。
Kubernetes Dashboard 提供了一种简单而直观的方式来管理 Kubernetes 集群。对于那些对命令行不太熟悉的用户或者需要在日常工作中频繁管理 Kubernetes 集群的开发人员和管理员来说,Kubernetes Dashboard 是一个非常有用和方便的工具。
需要注意的是,因为 Kubernetes Dashboard 通过Web UI来管理集群,因此对安全的要求也比较高,需要进行合理的配置和保护。
Kubernetes提供了一个名为“kubectl”的命令行(CLI)组件来承载核心操作。但是在企业范围内使用 CLI 有两个重大障碍
Dashboard by Kubernetes(也称为Kubernetes Dashboard)是一个基于 Web 的用户界面,用于将应用程序部署到 Kubernetes 集群中,监控所有资源的健康状况并在出现任何问题时进行故障排除。该应用程序有助于 DevOps、Ops 和SRE团队管理 Kubernetes 资源,例如 Deployments、Statefulsets、Jobs 等。可以使用清单文件快速部署应用程序并从 UI 本身更新帮助。
Kubernetes Dashboard 的主要特点包括以下几个方面:
总之,Kubernetes Dashboard 可以大大简化 Kubernetes 集群的管理,使得开发人员和管理员可以更加方便地查看和管理 Kubernetes 集群,提高工作效率。同时,Kubernetes Dashboard 还具有良好的安全性,可以保证 Kubernetes 集群的安全访问。
Kubernetes Dashboard 由于两个主要特性而对 DevOps 团队很有吸引力:
Kubernetes 仪表板将提供各种正在运行的工作负载及其总数的视图。DevOps 工程师将获得工作负载、服务、配置和存储以及集群视图的可见性。
在 Kubernetes 集群中,为了以更高效可靠的方式管理服务,开发人员和管理员需要保证集群范围内的可见性和故障排除。以下是几种常见的保证集群范围内可见性和故障排除的方法:
需要注意的是,不同的企业和应用程序会有不同的需求和限制,所以开发人员和管理员需要根据实际的情况来选择合适的可见性和故障排除方案。
工作负载视图(Workload View)是 Kubernetes Dashboard 的一个特性,用于展示 Kubernetes 集群中正在运行的应用程序的各种资源的情况,例如 Deployment、StatefulSets 和 DaemonSets 等。
工作负载视图提供以下几个方面的信息:
通过工作负载视图,开发人员和管理员可以更方便地查看 Kubernetes 集群中正在运行的应用程序的各种资源情况,包括运行状态、服务、存储卷以及关联的 Pod 等。这有助于开发人员和管理员更快地定位和解决问题,并提高系统的可靠性和可用性。在工作负载视图下,用户将获得集群所有命名空间中运行的工作负载资源的详细信息,例如 Deployments、Pod、ReplicaSets、DaemonSets、Job 和 StatefulSet。还可以根据集群中的特定名称空间执行粒度搜索。
豆荚视图(Pod View)是 Kubernetes Dashboard 的一个特性,用于展示 Kubernetes 集群中正在运行的 Pod 的详细信息,包括 Pod 的状态、控制器信息和关联的容器等。
豆荚视图提供以下几个方面的信息:
工作负载最重要的方面之一可能是在特定节点及其各自的命名空间中运行的 pod 数量。
用户将获得有关 pod 的深入信息,例如:
同样,Kubernetes Dashboard 提供了命名空间的聚合视图以及命名空间中服务和入口对象、配置映射、网络策略、机密和持久卷声明的详细视图。
在入口视图中,Kubernetes Dashboard是用户访问Kubernetes集群的通道。用户可以通过一个Web浏览器访问Kubernetes Dashboard来查看和管理Kubernetes资源和工作负载。用户可以使用Kubernetes Dashboard来查看和编辑容器、部署、服务和命名空间等资源,还可以查看应用程序运行状态的监视图表。
Kubernetes Dashboard 提供了关于正在运行的服务和入口对象的可见性,包括每个服务或入口所属的命名空间、它们的标签和集群 IP。用户可以获得关于每个服务的更深入的信息,例如标签、pod、端点等。
配置视图和存储视图是ITIL框架中的两个视图,用于描述IT服务的配置和存储管理。
配置视图(Configuration View)是ITIL框架中描述服务和基础设施配置的视图,它包括从IT资源到服务的各个层级。配置视图帮助用户更好地了解服务组件的构成,以及它们之间的关联和依赖关系。配置视图还包括各种配置项和它们之间的关系,例如服务器硬件配置信息、网络拓扑结构、软件和应用程序的版本和设置参数等。
存储视图(Storage View)是ITIL框架中描述存储管理的视图,它包括存储资源的形成和存储的分配方式。存储视图帮助用户更好地了解存储的结构和规格,并能够监视、存储资源的使用情况,了解存储资源的性能和可用性。
配置视图和存储视图通常是人工制定和维护的,并且在IT服务管理中发挥了重要作用。拥有这两个视图,IT工作者可以更好地了解IT资源的组成和配置,并能够快速获取和互相链接这些信息,从而提高服务的质量和效率。
与任何其他对象视图类似,Kubernetes 仪表板显示集群中持久卷声明 (PCV)的详细信息及其状态、存储卷、存储类、注释、标签、命名空间等。仪表板还显示了集群的配置部署到集群中的应用程序,可以直接从 UI 进行编辑。
基于UI的部署是指使用图形用户界面(UI)界面来快速创建、配置和部署应用程序和服务,而无需编写脚本或命令行代码。这种方法适用于那些不想或不熟悉使用命令行进行部署和配置的开发人员或管理员。
UI通常提供了用户友好的界面,使得用户可以通过简单的步骤来完成应用程序和系统部署。通过UI,用户可以选择和配置所需的部署和安装选项,例如选择容器镜像、网络配置和存储选项等。UI还可以提供部署状态和错误信息的实时反馈,让用户更好地跟踪和解决问题。
基于UI的部署可以是针对特定的平台或云服务提供商的,也可以是通用化的如Docker。对于企业IT环境,这种方法可以提高部署速度、减少用户出错的评率,降低维护的难度。Kubernetes 仪表板允许您从 UI 部署任何(工作负载)资源。您可以在浏览器中创建清单文件,也可以从 Git 等来源上传您的清单文件。而 Kubernetes Dashboard 将直接与 Kubernetes 控制器通信,以获取为您创建的资源对象。在下面的示例中,我们创建了一个清单文件来创建一个 pod,使用 Nginx 1.19.0 映像来创建一个 pod。
Kubernetes Dashboard 是在 Kubernetes 架构之上开发的外部服务。在引擎盖下,仪表板使用 API 读取所有集群范围的信息,以实现对单个窗格的可见性。它还使用 API 将资源和应用程序部署到集群中。CLI 和 Kubernetes 仪表板都依赖于 kube-API-server 来处理请求。要开始使用 CLI,Ops 团队必须在同一集群中部署 Kubernetes Dashboard(类似于 Kubectl 部署)。
要开始使用 Kubernetes Dashboard,您需要在集群中运行以下命令:
运行以下命令部署 Kubernetes Dashboard 应用程序
kubectl Apply -fhttps://raw.Githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
要从本地机器访问 Kubernetes Dashboard,可以通过运行以下命令创建一个安全通道来访问 K8s 集群:
kubectl proxy
您可以使用以下 URL 访问您的仪表板:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Kubernetes Dashboard 以最小的 RBAC 权限安装,因此您可以使用不记名令牌访问 Dashboard。因此,您可以创建一个服务帐户并将其绑定到具有管理员权限的集群。您可以使用以下服务帐户 YAML 文件:
apiVersion: v1kind: ServiceAccountmetadata: name: admin-user namespace: kubernetes-dashboard
使用命令制作服务资源:
kubectl - apply -f <<serviceaccount.yaml>>
您可以使用以下 ClusterRoleBinding YAML 创建服务帐户cluster-admin:
apiVersion: v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects: kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard
同样,应用 YAML 文件在集群中创建 ClusterRoleBinding 资源。
使用命令生成不记名令牌
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsnotallow="{.secrets[0].name}") -o go-template="{{.data.token | Base64decode}}"
您可以粘贴不记名令牌以开始使用 Kubernetes 仪表板。
使用基于 UI 的 Kubernetes Dashboard 来代替 CLI 无疑是好的。但是,有一些限制使其用例仅限于小型初创公司:
请注意,虽然 Kubernetes Dashboard 的开发也是为了让 UI 的部署变得容易,但今天,还没有从 UI 应用高级部署策略(例如金丝雀)的机制。
Kubernetes Dashboard 有四种开源替代方案,它们可以独立构建,也可以在 Dashboard 项目之上构建,以增强从 UI 进行部署、监控和故障排除的能力。
Devtron 提供了一个开源的 Kubernetes-native DevOps 平台,可以自动化整个软件交付过程,从 CI、CD、GitOps、安全和治理、渐进式部署、可观察性、监控和故障排除。Devtron Kubernetes 仪表板 在单个窗格中提供强大的功能,使 DevOps、SRE 和开发人员的生活更简单:
具有 MIT 许可证的开源软件用于多集群管理和监控工作负载。它还提供基本的 HELM 资源管理和资源分组,但可能需要一个学习曲线。其次,它有一些盲点,因为它没有为多集群部署、图表配置差异等提供 HELM 图表组。
由 VMware 启动的开源仪表板,但现在已存档 - 没有社区支持,您只能靠自己。最初,该项目的目标是让开发人员使用 UI 更快地将代码发送到集群中。Octane 在集群可视化和管理方面的功能有限。
Vanilla Kubernetes 仪表板对比 Devtron Kubernetes 仪表板对比 OpenLens。