2024 年:Kubernetes 包管理的新前沿

news2025/2/22 19:57:31

🧑 博主简介:CSDN博客专家历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作请加本人wx(注明来自csdn):foreast_sea

在这里插入图片描述

 


2024 年对 Glasskube 来说是充满活力的一年。2 月,我们推出了一个 Kubernetes 管理器,它最初是由我们的团队在产品发布失败后内部开发的,部分原因是当前使用的包管理工具的限制。在这次不冷不热的 Kubernetes 操作员首次亮相后,Glasskube 创始人 Philip 和 Louis 在 Hacker News 上分享了他们的发布事后分析。他们发现,许多其他人对现有的 Kubernetes 包管理解决方案也遇到了类似的挫折。认识到这一共同的痛苦,产品转型变得不可避免,Glasskube 包管理器开始形成。

the-start (开始)

现在,才同年 8 月中旬,我们已经接近 150 万次下载、2.6k 个 GitHub 星和 50+ 贡献者。我们见证了采用、功能和用例的显著增长。随着我们的不断发展,我们想花点时间回顾一下我们迄今为止完成的工作。这篇博文是一次全面的更新,是一面旗帜,旨在分享您需要了解的有关 Glasskube 当前状态、即将发生的事情以及您如何帮助塑造 Kubernetes 包管理的未来的所有信息。

欢迎来到 Kubernetes 包管理的新前沿。

介绍

为什么 Kubernetes 需要更好的包管理

自诞生以来,Kubernetes 作为容器编排系统从未停止过普及,其采用率不断提高。近年来,可用软件包的数量已从大约 100 个增加到 800 多个。这种增长无论如何都非常令人印象深刻,显示了 Kubernetes 生态系统的成熟度,但它也揭示了当前包管理工具的问题。开发人员经常在以下方面苦苦挣扎:

  • 复杂且高度定制的工作流程

  • 耗时且多次手动流程

  • 过度依赖当前的包管理器工具,这还有很多不足之处。

这些问题可能导致:

  • 运营团队的更多工作

  • 不可扩展的工作流程

  • 可能的安全风险

很明显,Kubernetes 需要一种方法来管理以现代 Kubernetes 集群使用方式发展的软件包,即以更加自动化和整体声明的方式。

什么是 Glasskube?

Glasskube 是为 Kubernetes 打造的开源包管理器。它旨在使安装、更新和设置包更容易、更快捷。事实上,它可以比 Helm 或 Kustomize 等工具快 20 倍。

Glasskube 从易于使用的包管理器(如 和 )中汲取了灵感。它提供两种管理包的方法:Homebrewnpm

图形用户界面 (GUI)

Glasskube-用户界面

命令行界面 (CLI)

glasskube serve # to access the Glasskube UI

当前工具:Helm 和 Kustomize

Helm 和 Kustomize 是管理 Kubernetes 包的两个主要工具。它们有助于在 Kubernetes 中设置和运行应用程序,但工作方式不同。

Helm 使用模板创建 Kubernetes yaml 文件。它将应用程序打包到 “图表” 中,这些图表是 YAML 文件的集合。它的一些好处是:

  • 配置复杂应用程序

  • 它在应用程序安装方面大放异彩

  • 回滚更改非常简单

  • 它被广泛采用

Kustomize 采用不同的方法,并且多次与 Helm 结合使用。它允许用户:

  • 设置基本应用程序配置

  • 为不同环境添加更改

  • 避免复杂的模板

现有工具的问题

虽然 Helm Kustomize 很有用,但它们可能会给开发人员带来问题。

Helm 可能很棘手:

  • 由于模板复杂,难以学习

  • 针对不同的设置自定义应用程序可能会令人困惑

  • 无法更新 CRD

  • 更新很笨拙

  • Helm 本质上是片面的,安装后它的工作就完成了。

Kustomize 有它自己的问题:

  • 没有内置的方法来管理包

  • 用户需要其他工具来共享其设置

  • 处理复杂的依赖关系可能很困难

  • 在管理应用程序生命周期方面的自动化程度低于 Helm

这些问题说明了为什么需要一个更简单的 Kubernetes 包管理器。这就是 Glasskube 的用武之地,旨在让整个过程更轻松。

Glasskube 解释

Glasskube 的工作原理

Glasskube 使管理 Kubernetes 软件包变得更加容易。它提供了两种使用方法:

  1. 图形界面 (GUI)

  2. 命令行界面 (CLI)

Glasskube 使用一个名为 Glasskub Hub 的中央软件包存储库,它可以:

  • 了解包依赖项

  • 与 GitOps 配合良好

  • 自动更新包

  • 允许引用多个公共和私有软件包存储库

glasskube-archetecture

可能最重要的是,Glasskube 具有客户端和服务器端组件。服务器端组件会持续跟踪已安装软件包的运行状况和所需状态。服务器端组件包括:

  • PackageController:与 Kubernetes API 通信以部署和协调包。

  • PackageInfoController:从配置的后端包存储库中读取包清单,以确定集群包的真实状态。

主要特点

Glasskube 有几个关键功能:

main-features

解决常见问题

Glasskube 直接解决了其他 Kubernetes 包管理器存在的差距:

  • 它比 Helm 更易于使用,而 Helm 对新用户来说可能很难

  • 它比 Kustomize 更好地处理依赖项,Kustomize 没有内置的包管理

  • 它与 GitOps 配合得很好,可以更轻松地:

    • 回滚更改
    • 升级应用
    • 团队合作
  • 包范围有助于提高包安装和包共享的效率。例如,如果多个包都依赖于 cert-manager,则一个实例足以为多个包提供服务。

  • 轻松访问带有前端的软件包,而无需手动前移

如何设置 Glasskube

您需要安装的内容

在开始之前,请确保您已:

  • 作为一个有效的 Kubernetes 集群,minikube 是快速本地设置的简单选择。

  • kubectl 安装在您的计算机上

分步安装指南

以下是设置 Glasskube 的方法:

安装 Glasskube CLI:打开终端并在 macOS 上运行:

brew install glasskube/tap/glasskube

有关其他安装方法,请单击此处。

通过运行以下命令引导 Glasskube 以安装服务器端组件:

glasskube bootstrap

检查安装跑:

glasskube version

确保 Glasskube 和 package-operator 都已安装并运行相同的版本:

glasskube: v0.17.0
package-operator: v0.17.0

使用 Glasskube:主要功能

访问 GUI

Glasskube 可以轻松地在 Kubernetes 集群中添加和删除软件包:

要添加包:

glasskube serve

安装软件包

Glasskube Hub 中可用的任何软件包都已准备好安装

glasskube install <package-name>

然后,此命令将在安装之前请求确认软件包版本。

要删除包:

glasskube uninstall

管理包依赖项

Glasskube 会为你处理包依赖项:

  • 安装包时,它会自动安装任何必需的依赖项

  • 这样可以节省时间并防止因缺少组件而出错

在下面的示例中,在安装软件包时,如果集群中尚不存在 cert-manager 实例,则还会安装该实例。keptn

keptn-dependency

处理包配置

您可以使用 Glasskube 轻松更改或查看包设置,请注意,并非所有都有自定义值配置:

在下面的示例中,caddy-ingress-controller 具有 exposed 值,您可以在其中添加电子邮件地址以启用 HTTPS 功能。automaticHTTPS

dependency-management

使用 GitOps

Glasskube 在 GitOps 工作流中运行良好,允许用户在 Git 中控制其 Kubernetes 包的所需状态意味着:

  • 您的 Kubernetes 包设置与存储在 Git 中的文件保持同步

  • 您可以使用 ArgoCD 或 Flux 等工具来应用存储在 Git 中的所需包状态

  • 更改易于跟踪,并在需要时撤消

  • 集群设置可以在几分钟内完成,而不是几小时。

我们这里有一个完全可操作的 Glasskube GitOps 模板。按照 README.md 文件中的步骤开始操作。

使用 Renovate 自动更新

Glasskube 将 Glasskube Hub 中的软件包始终更新到最新的稳定版本:

  • 启用新版本或在新版本可用时收到通知auto-updates

  • 显示包信息,包括包的当前版本和使用glasskube list

  • 运行 将安装包的最新可用版本glasskube update <packageName>

  • 此外,通过 GUI 手动更新也是一个选项。

open-button

添加自定义软件包存储库

您现在可以添加多个软件包存储库供 Glasskube 读取,这对于以下应用非常有用:

  • 拥有自己的私有包列表的公司

  • 希望更轻松地管理内部包的团队

  • 它允许对无法公开的私有包遵循合规性规则

通过运行以下命令添加公共仓库:

glasskube repo add <name> <url>

添加私有仓库

glasskube repo add <name> <url> --auth (none|basic|bearer)

multi-repo-diagram

Glasskube 与其他包管理器

它与 Helm 和 Kustomize 的区别

Glasskube 提供了一种管理 Kubernetes 软件包的新方法,解决了 Helm 和 Kustomize 等旧工具中的限制。它提供的功能包括包和包管理器之间的双向通信、增强的自动化以及更具声明性的包管理方法。以下是 Glasskube 的突出之处:

  • 自动通知:Glasskube 会跟踪已安装的版本,并在需要时自动通知用户新的安装。

  • 无缝 CRD 更新:它可以顺利更新自定义资源定义 (CRD),确保所有内容保持同步。

  • 完整的 GitOps 集成:Glasskube 支持完整的 GitOps 工作流,这在以前是不可能的。

  • 高效控制:通过包范围的附加抽象层允许对包配置和使用进行更高效、更精细的控制。

商业服务产品

提供具有自托管选项的商业工具的公司通常会把钱留在桌面上。自定义自托管安装和管理可能不在您公司的专业知识或带宽范围内。Glasskube Native 软件包可能是您需要的解决方案。我们可以与您合作,为各种自托管环境创建标准化、可定制且高度可扩展的软件包,所有这些都使用 Glasskube 打包。这种方法可确保为您的客户提供无缝体验,同时最大限度地提高您的收入潜力。

Business-service-offerings

如果您认为 Glasskube Native 软件包对您的业务有益,请与我们预约免费的演示电话。我们的团队很乐意为您提供帮助。

Glasskube 的下一步

新功能即将推出

Glasskube 正在添加新工具以简化包管理:

new-features

这些新功能将帮助用户更好地管理他们的 Kubernetes 包。

结束语

Kubernetes 软件包管理一直停滞不前,无法跟上通用 Kubernetes 生态系统的快速增长和发展。Glasskube 旨在使 Kubernetes 包管理更容易、更具声明性、灵活性,并且大大减少对需要多种工具才能完成工作的僵化模板流程的依赖。

随着 Glasskube 的发展,我们将需要用户和开发人员的帮助,以便朝着正确的方向进行构建。当前的 Kubernetes 包管理器最让您感到沮丧的是什么?我们如何改进?

对于使用 Kubernetes 的团队,我们希望像 Glasskube 这样的工具能越来越多地被采用和应用于复杂的环境。

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

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

相关文章

飞凌嵌入式T113-i开发板RISC-V核的实时应用方案

随着市场对嵌入式设备的功能需求越来越高&#xff0c;集成了嵌入式处理器和实时处理器的主控方案日益增多&#xff0c;以便更好地平衡性能与效率——实时核负责高实时性任务&#xff0c;A核处理复杂任务&#xff0c;两核间需实时交换数据。然而在数据传输方面&#xff0c;传统串…

VSCode 汉化教程【简洁易懂】

VSCode【下载】【安装】【汉化】【配置C环境&#xff08;超快&#xff09;】&#xff08;Windows环境&#xff09;-CSDN博客 我们安装完成后默认是英文界面。 找到插件选项卡&#xff0c;搜索“Chinese”&#xff0c;找到简体&#xff08;更具你的需要&#xff09;&#xff08;…

【Mac】VMware Fusion Pro 安装 CentOS 7

1、下载镜像 CentOS 官网阿里云镜像网易镜像搜狐镜像 Mac M1芯片无法直接使用上述地址下载的最新镜像&#xff08;7.9、9&#xff09;&#xff0c;会一直卡在安装界面&#xff08;在 install 界面按 enter 回车无效&#xff09;&#xff0c;想要使用需要经过一系列操作&#…

运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] Docker与Kubernetes集群拉取Harbor私有容器镜像仓库配置 描述&#xff1a;在现在微服务、云原生的环境下&#xff0c;通常我们会在企业中部署Docker和Kubernetes集群&#xff0c;并且会在企业内部…

C语言笔记(自定义类型:结构体、枚举、联合体 )

前言 本文对自定义类型的结构体创建、使用、结构体的存储方式和对齐方式&#xff0c;枚举的定义、使用方式以及联合体的定义、使用和存储方式展开叙述&#xff0c;如有错误&#xff0c;请各位指正。 目录 前言 1 结构体 1.1 结构体的声明 1.2 结构体的自引用 1.3 结构体变…

string的实际应用 -- 大数相加 、大数相乘

前言&#xff1a;哎&#xff0c;做题好难o(╥﹏╥)o&#xff0c;有时候想不到&#xff0c;而有时候则是想到了却没办法理清思路&#xff0c;转化为代码。有必要反思了┓(;_&#xff40;)┏&#xff0c;是否是做的太少了&#xff0c;或是自己的基础欠缺。 大学总是有些迷茫~ ​​…

STM32-- keil 的option for target使用

keil版本号 1.device界面 如&#xff1a;stm32f103c8t6的工程&#xff0c;可以直接在device这里修改成stm32f103vct6&#xff0c;虽然引脚不一样&#xff0c;但是很多一样的地方&#xff0c;可以直接使用&#xff0c;有些不修改也可以下载程序。 2.target xtal的设置不起作用了…

shell脚本9完结,保姆篇---春不晚

免责声明 学习视频来自 B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;http…

【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)

宾馆酒店、旅馆招待所等住宿服务设施的配置情况是一个城市公共基础设施完善程度的重要体现&#xff0c;一个城市住宿服务设施种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的公共服务水平越高&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区…

RabbitMQ和RocketMQ相关面试题

RabbitMQ和RocketMQ面试题 RabbitMQ1.RabbitMQ各部分角色2.如何确保RabbitMQ消息的可靠性&#xff1f;3.什么样的消息会成为死信&#xff1f;4.死信交换机的使用场景是什么&#xff1f;5.TTL6.延迟队列7.消息堆积问题8.MQ集群 RocketMQ1.RocketMQ各部分角色2.RocketMQ如何保证高…

在kali用msfpc远程控制Windows

本次实验我们将使用msfpc生成windows下的被控端&#xff0c;并使用metasploit渗透工具进行远程控制。 一、实验环境 Windows主机IP&#xff1a; 192.168.167.1 虚拟机Kali IP&#xff1a; 192.168.167.100 二、实验过程 1、安装msfpc apt-get install msfpc 2、生成windows…

SDIO WIFI模组Clock EMC问题

问题&#xff1a; 某产品采用SDIO3.0的WIFI模组&#xff0c;测试3米场地辐射出现333MHz和500MHz频点超标。 分析&#xff1a; 1、一开始分析板子上没有对应333MHz,499.5MHz的频点倍频&#xff0c;因此直接拔掉产品上所有的外部接线&#xff0c;测试还是超标。表明辐射源头出…

MCU(一) 时钟详解 —— 以 GD32E103 时钟树结构为例

微控制器 (MCU) 的时钟系统是系统运行的核心&#xff0c;它提供了各模块所需的时钟信号。本文以 GD32E103 系列 MCU 为例&#xff0c;详细讲解其 时钟树结构&#xff08;Clock Tree&#xff09;。通过理解时钟源、分配与预分频器设置&#xff0c;可以灵活配置系统时钟以实现高性…

【方案库】从单张照片快速重建3D场景:Flash3D详解

一、Flash3D是什么? Flash3D 是一项革命性的AI技术,能够从单张普通照片快速重建3D场景。简单来说,你只需要提供一张照片,Flash3D 就能帮你还原出这个场景的立体效果。这项技术在房地产、建筑设计、虚拟现实等多个领域都有着广泛的应用前景。 二、主要特点 一张就够:只需…

QT QFormLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例&#xff0c;包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizonta…

如何在 Ubuntu 22.04 上安装 Metabase 数据可视化分析工具

简介 Metabase 提供了一个简单易用的界面&#xff0c;让你能够轻松地对数据进行探索和分析。通过本文的指导&#xff0c;你将能够在 Ubuntu 22.04 系统上安装并配置 Metabase&#xff0c;并通过 Nginx 进行反向代理以提高安全性。本教程假设你已经拥有了一个非 root 用户&…

c#:winform调用bartender实现打印(学习整理笔记)

效果 学习路径 C# winform调用Bartender进行自定义打印、批量打印、检索文件夹中的模板_哔哩哔哩_bilibili 一、初始环境搭建见&#xff1a; c#:winform引入bartender-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/143989473?sharetypeblogdetail&s…

1123--日期类

目录 一 java 1. Date类 2. calendar类 3. 第三代日期类‘ 3.1 常用方法 3.2 格式化操作 一 java 1. Date类 2. calendar类 3. 第三代日期类‘ 3.1 常用方法 3.2 格式化操作

当产业经济插上“数字羽翼”,魔珐有言AIGC“3D视频创作大赛”成功举办

随着AI技术的飞速发展&#xff0c;3D数字人技术已成为驱动各行各业转型升级的重要力量。在这一背景下&#xff0c;2024山东3D数字人视频创作大赛应运而生&#xff0c;并在一番激烈的角逐后圆满落幕&#xff0c;为科技与创意的交融写下浓墨重彩的一笔。 11月20日&#xff0c;一…

InstantStyle容器构建指南

一、介绍 InstantStyle 是一个由小红书的 InstantX 团队开发并推出的图像风格迁移框架&#xff0c;它专注于解决图像生成中的风格化问题&#xff0c;旨在生成与参考图像风格一致的图像。以下是关于 InstantStyle 的详细介绍&#xff1a; 1.技术特点 风格与内容的有效分离 &a…