Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

news2024/9/19 10:50:04

Helm Dashboard 通过提供图形用户界面,使在 Kubernetes 中管理 Helm 版本变得更加容易,这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本,并跟踪其状态。

本文将探讨 Helm Dashboard 提供的特性和优势,并解释如何使用它来促进 Kubernetes 应用程序管理。我们将介绍它的基本功能和用户界面,并展示一些实际示例。

什么是 Helm 仪表板?

Helm Dashboard 是一个用于 Helm 的开源 GUI,由 Komodor 开发,并被其作者描述为“Helm 缺失的 UI”。您可能知道,Helm 是某种 Kubernetes 包管理器。它简化了在 Kubernetes 中安装应用程序(通过称为 Helm 图表的包)和管理其版本的过程。安装 Helm 图表后,它在 Kubernetes 集群中运行的实例称为 Helm 版本。

Helm Dashboard 提供了一个 Web UI,用于浏览和管理(例如,修改或删除)这些版本。该项目诞生于 2022 年 8 月,并于 2023 年 2 月宣布随其 v1.0.0 正式发布。目前(截至 2023 年 12 月),其最新版本是 v1.3.3,于 2023 年 6 月发布,其 GitHub 存储库拥有近 4500 Stars 和 40 多名贡献者。它是用 TypeScript(Node.js)和 Go 编写的。

安装 Helm Dashboard

项目存储库中的官方文档提出了几种安装 Helm Dashboard 的方法。您可以:

  • 下载带有预构建可执行文件的存档。
  • 将其安装为 Helm 插件。
  • 使用 chart 将其安装在 K8s 集群中(这也将创建一个 Ingress 资源)。
  • 自行从源代码生成可执行文件。

在本文中,我们将坚持使用第二个选项——Helm 插件。要安装插件,您需要安装 Helm v3.4.0+ 并执行以下命令:

helm plugin install https://github.com/komodorio/helm-dashboard.git

请注意,插件需要调用配置文件来访问 Kubernetes 集群(K8s 文档详细介绍了这个主题)。kubeconfig

要运行该插件,请输入您的终端:

helm dashboard

默认情况下,这将在浏览器中打开一个 Web UI,显示 Helm 版本的概述页面。

Helm 仪表板功能

页面顶部显示的是“已安装”和“存储库”选项卡。这些是我们将使用的主要选项卡。让我们更详细地看一下它们。

管理已安装的 Helm 版本

通过“已安装”选项卡,您可以查看已安装的版本,并通过选择特定的 Kubernetes 集群和所需的命名空间来筛选它们:

单击任何版本以查看有关其的详细信息。

如果发布被列为失败,则会显示一条错误消息。它将说明版本安装失败的原因:

如果版本安装成功,仪表板将显示相关 Kubernetes 资源的列表。

我们以 zookeeper-operator-dev 版本为例:

页面左侧显示的修订版本是系统在群集中找到的版本的状态。

我们的主要关注点将设置在页面主要部分的“资源”和“清单”选项卡上。

释放资源

“资源”选项卡列出了版本中的资源。每个资源都有一个“描述”按钮。单击一个以查看资源摘要:

如您所见,资源描述是常规输出。kubectl describe

在某些情况下,“描述”按钮旁边也可能有一个“扫描”按钮:

如果安装了 Trivy,它就可用了。此工具扫描容器并检测漏洞和潜在威胁。

单击“扫描”按钮开始扫描资源。它将以如下报告结束:

发布清单

“清单”选项卡显示发行版中的资源清单。您可以从群集中现有的清单中选择任何清单:

随后出现的窗口将有两个选项卡:

  • 先前版本的差异显示了当前版本和先前版本之间的差异。
  • 具有特定修订版的差异显示了当前版本和特定版本之间的差异。

例如,以下是当前版本与版本 3 之间的区别,后者无法部署:

释放操作

您可以从集群中升级、回滚或删除任何版本。“已安装”页面上的“重新配置”、“回滚”和“卸载”按钮就是这样做的:

下面是升级窗口的屏幕截图:

管理 Helm 存储库

通过“存储库”窗口,可以管理本地安装的 Helm 存储库。同时,左侧面板显示存储库列表:

您可以选择一个存储库并浏览它附带的 Helm 图表。您可以执行的其他操作包括:

  • 添加存储库;
  • 更新存储库;
  • 删除存储库。

存储库中可用的 Helm 图表可以安装到 Kubernetes 集群中。但首先,您必须填写图表。为此,请单击图表名称旁边的“安装”按钮。这将导致弹出以下窗口:

Helm Dashboard 的优势和微妙之处

现在我们已经了解了 Helm Dashboard 的主要功能,是时候指出其中我最喜欢的功能了:

  • Helm Dashboard 可以安装在本地,也可以使用 chart 安装在集群中。
  • 您可以查看集群中安装的 Helm 图表并检查其发布历史记录。
  • diff 功能显示发布版本之间的差异。
  • 您可以回滚或更新它。
  • 在本地安装时,您可以浏览多个集群中的版本。
  • Helm Dashboard 可以与漏洞扫描程序集成。
  • 用户界面直观且使用愉快。

至于 Helm Dashboard 的特殊性,值得注意的是它的 UI 会影响 Kubernetes API 服务器。启动该工具时,服务请求释放机密,从而导致 CPU 利用率增加。例如,这是 Helm 仪表板请求发布机密之前的群集状态:

在这里,您可以看到运行 Helm Dashboard 之前的典型集群状态:CPU 使用率、请求的 K8s 资源以及频率。

下面是 Helm Dashboard 启动请求发布密钥后的集群状态:

从这些图中我们可以看出,随着秘密资源被主动检索,CPU 利用率也有所增加。

结论

我相信 Helm Dashboard 是一个方便的 Web UI,用于在 Kubernetes 中查看和管理 Helm 版本。我特别喜欢 diff 函数,它允许您将版本相互比较。

该工具的简约、舒适和整洁的界面给人留下了愉快的印象。在使用测试集群时,它将作为开发团队的天赐之物,并帮助他们找出问题所在并快速修复它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1399087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙 HarmonyOS ArkTS ArkUI 动画 中心扩展、向下扩展、纵向扩展

EntryComponentstruct Index {State widthA: number 0State heightA: number 0onPageShow():void{animateTo ( {duration: 2000,iterations: -1,curve:Curve.Linear}, () > {this.widthA 200this.heightA 200} )}build() {Column() {// 中心扩展Column(){}.width(this.wi…

二叉树基础oj题目

二叉树基础oj题目及思路总结 前文中,介绍了二叉树的基本概念及基础操作,进一步对于二叉树的递归遍历及子问题的处理思想有了一定的了解。本文将带来几道二叉树经典的oj题目。 目录 二叉树基础oj题目 对称二叉树平衡二叉树二叉树的层序遍历 二叉树基…

(C语言)编译和链接

前言͟͟͞͞💌:对于现在的各种编译器而言许多都是好多个功能的集成,那么我们的代码到底是如何去实现的呢?难道我们的计算机可以直接读懂我们所写的代码,并运行吗?对于很多细心的小伙伴们可能会想这样的问题…

强缓存、协商缓存(浏览器的缓存机制)是么子?

文章目录 一.为什么要用强缓存和协商缓存?二.什么是强缓存?三.什么是协商缓存?四.总结 一.为什么要用强缓存和协商缓存? 为了减少资源请求次数,加快资源访问速度,浏览器会对资源文件如图片、css文件、js文…

Spring DI

目录 什么是依赖注入 属性注入 构造函数注入 Setter 注入 依赖注入的优势 什么是依赖注入 依赖注入是一种设计模式,它通过外部实体(通常是容器)来注入一个对象的依赖关系,而不是在对象内部创建这些依赖关系。这种方式使得对象…

【Python学习】Python学习21- 正则表达式(2)

目录 【Python学习】Python学习21- 正则表达式(2) 前言字符串检索和替换repl 参数是一个函数参考 文章所属专区 Python学习 前言 本章节主要说明Python的正则表达式。 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与…

『 C++ - STL』map与set的封装 ( 万字 )

文章目录 🎡 map与set介绍🎡 map与set的基础结构🎡 红黑树的再修改🎠节点及树的定义🎠KeyOfValue的使用🎠插入函数🎠析构函数🎠红黑树完整代码(供参考) 🎡 迭代器的实现&…

【C++】—— C++的IO流

在C中,I/O流是一项关键的编程概念,为程序提供了与外部世界进行交互的重要手段。通过使用C的强大I/O库,开发者能够实现对标准输入输出、文件、字符串等多种数据源的高效处理。接下来让我们深入探讨C的I/O流,了解其基本原理、常见操…

基于动态顺序表实现通讯录项目

本文中,我们将使用顺序表的结构来完成通讯录的实现。 我们都知道,顺序表实际上就是一个数组。而使用顺序表来实现通讯录,其内核是将顺序表中存放的数据类型改为结构体,将联系人的信息存放到结构体中,通过对顺序表的操…

GO 中高效 int 转换 string 的方法与高性能源码剖析

文章目录 使用 strconv.Itoa使用 fmt.Sprintf使用 strconv.FormatIntFormatInt 深入剖析1. 快速路径处理小整数2. formatBits 函数的高效实现 结论 Go 语言 中,将整数(int)转换为字符串(string)是一项常见的操作。 本文…

数据库-数据库分类

数据库可以分为关系型数据库和非关系型数据库,常见的数据库如下 关系型数据库 关系型数据库是一种采用关系模型来组织数据的数据库,它以行和列的形式存储数据,以便于用户理解。关系型数据库中的数据以二维表的形式组织,被称为表…

从零开始c++精讲:第三篇——内存管理

文章目录 一、C/C内存分布二、C语言中动态内存管理方式:malloc/calloc/realloc/free三、C中动态内存管理四、operator new与operator delete函数4.1 operator new与operator delete函数(重点) 五、new和delete的实现原理5.1内置类型5.2 自定义类型 六、定…

C++总结笔记

1. 简介 1、面向对象程序设计 面向对象的四大特性 1)封装 2)继承 3)多态 4)抽象 2、标准库 标准C由三个部分组成 1)核心语言:提供了所有的构件块 2)C标准库:提供了大量的函…

web蓝桥杯真题--11、蓝桥知识网

介绍 蓝桥为了帮助大家学习,开发了一个知识汇总网站,现在想设计一个简单美观的首页。本题请根据要求来完成一个首页布局。 准备 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: ├── css │ └──…

浅谈ARP协议

ARP是 address resolution protocol的缩写,意思是地址解析协议,处于OSI七层模型的网络层,它的作用是根据Ip地址找到mac地址,实际上我们需要访问某一个ip时,是要先找到它的mac地址,也就是物理地址才行的&…

Windows系统下使用docker-compose安装mysql8和mysql5.7

windows环境搭建专栏🔗点击跳转 win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7 文章目录 win系统环境搭建(十四)——Windows系统下使用docker安装mysql8和mysql5.7MySQL81.新建文件夹2.创建…

C++播放音乐:使用EGE图形库

——开胃菜,闲话篓子一大片 最近,我发现ege图形库不是个正经的图形库—— 那天,我又在打趣儿地翻代码时,无意间看到了这个: 图形库?!你哪来的音乐(Music)呢&#xff1f…

【蓝桥备赛】求阶乘

题目链接 求阶乘 个人想法 之前做过计算阶乘结果后面有几个0的题目,这里看到本题之后,很快就有思路了。想要得到阶乘结果有几个0,首先尾数后面的0,最小肯定是因为因子中存在10。然后,10如何得来呢? 2 * …

【LeetCode】141. 环形链表

leetcode题目链接 141. 环形链表 #include <stdio.h> #include <stdbool.h>struct ListNode {int val;struct ListNode* next; }; typedef struct ListNode ListNode;bool hasCycle(ListNode* head) {ListNode* slow head, * fast head;while (fast &&…

SpringBoot 3.1.7 集成Mybatis

一、介绍 Mybatis的中文官网并没找到与SpringBoot最新的集成的教程&#xff0c;有的都是老式的配置方法&#xff0c;所以记录一下怎么我是怎么集成SpringBoot 3.1.7 集成Mybatis 的方法 有条件的可以打开源网站 https://github.com/mybatis/spring-boot-starter 没有条件的我…