Glasskube🧊 介绍 — Kubernetes 缺少的包管理器📦
这篇文章的目的是分享我们对云原生包管理器如何工作以及需要解决哪些挑战的技术预览。
Glasskube完全开源。请留下一颗星,支持我们:⭐⭐glasskube/glasskube
我们期待您的反馈!🫶
在下面的评论区分享你的想法!告诉我们你希望我们为你提供哪些主题的更多内容。如果本指南对你有帮助,请点击猫咪图标并留下一颗星,以支持我们创作更多以开发者为中心的内容。你的反馈至关重要!
Glasskube 介绍——Kubernetes 缺失的包管理器
Kubernetes 上的包管理是云原生社区最紧迫的问题之一。这一概念在桌面和移动计算等其他生态系统中广为人知,但在云计算领域尚未实现。例如,在 Android 和 iOS 平台上,数百万开发者将他们的包发布到 Play 商店或 App Store 中,以接触用户。
包管理器还确保所有用户都收到开发人员发布的最新版本,并且开发人员收到崩溃报告和用户反馈作为改进其应用程序的回报,但作为云原生开发人员,目前还没有可以依赖的包管理器。
我们的第一个版本(v0.0.1)已经具有可以安装基本包的工作原型,但仍有许多挑战需要解决。
云原生架构
Glasskube 本身被设计为云原生应用。它拥有易于安装的客户端,并带有图形用户界面和自动完成您常用 shell 的功能。
Glasskube 软件包生态系统的核心是我们的中央软件包注册表,它保存着软件包清单。在未来的版本中,我们还计划支持第三方注册表,并支持在集群中使用多个注册表。
Glasskube 包操作员将最新的清单同步到集群中,并确保在有新的清单可用时立即更新。
需要解决的挑战
我们已经在公共路线图中介绍了一些即将推出的功能,但我也想借此机会简要谈谈更广泛的挑战。
Kubernetes 版本兼容性
Kubernetes 每 4 个月发布一次次要版本,这些版本通常会包含新的 API 版本。软件包作者需要根据这些变化调整其软件包。在 Kubernetes 中,特定版本可能包含某个资源的多个 API 版本,以便软件包能够与更广泛的 Kubernetes 版本兼容。
这些兼容版本通常仅记录在软件包分发商的更新日志中。Glasskube 旨在将此类元数据与kube-no-trouble或Pluto等工具的自动检查功能相结合。
用户不应该被要求费力地检查所有包的兼容性,如果他们的包与最新的 API 版本不兼容,包开发人员应该得到反馈。
包依赖项
云原生应用程序经常需要互操作,并且几乎每个 Kubernetes 集群中都能找到一些软件包。例如:cert-manager、Ingress 控制器或数据库操作器。由于缺乏软件包管理器和生态系统,这些依赖项通常仅在应用程序的“入门”部分中提供文档。
在理想情况下,包作者可以简单地指定其包的依赖项,包管理器确保满足所有这些先决条件。
测试
为了支持多个 Kubernetes 版本、依赖项和包,Glasskube 需要为其中央包注册表中的所有包构建大规模自动化测试基础设施。
反馈和包装质量
正如在其他软件包管理器(例如Arch 用户仓库或 Play Store 和 App Store)中看到的那样,用户的反馈和评论可以帮助其他用户在不同的软件包之间做出选择。此外,应用程序开发者也会参考用户的反馈,以在软件包管理器中获得更高的人气和评分。
Glasskube 和 Helm
Glasskube 无法取代 Helm。Helm 的优势在于它可以通过模板配置发布,并且能够执行升级和回滚。
Glasskube 专注于只需要安装和定制(双关语😉)单个应用程序的管理员,但他们还需要确保
在多个 Kubernetes 版本升级过程中多个软件包保持最新和安全,并适应不可避免的重大变化。
入门
如果您想亲自尝试 Glasskube 并安装您的第一个包,请遵循我们的入门指南。
发行说明
所有发行说明均可在 GitHub 上找到:https://github.com/glasskube/glasskube/releases/tag/v0.0.1
介入
参与最简单的方式是解决我们的一个未解决的问题。
也欢迎您加入我们的Discord。
如果你是云原生开发者,请提交你的包。
Glasskube 尚处于起步阶段,我们非常期待您的反馈。
请告诉我们您的想法,我们非常乐意听取您的意见。
星形玻璃杯: