模板对于 GitOps 驱动的自动化是必不可少的

已发表: 2022-05-27

目录

GitOps 驱动的自动化

Kubernetes 因其易于扩展和管理容器化应用程序而闻名。 它允许您在整个应用程序生命周期中对节点、片段、容器、服务和配置映射进行排序和管理。 通过脚本很难实现这种灵活性和控制。

但是由于 Kubernetes 的基础设施公告方法,您可以在任何级别定义精确更改。 Kubernetes 使您能够集成多种工具,以促进容器的自动化规划、部署和监控。

Helm 就是一个这样的工具,它是 CNCF 采用的自动化框架,不仅在 Kubernetes 圈子中而且在 GitOps 生态系统中也很流行。 在这篇文章中,我们将了解 Helm 如何通过 Kubernetes 和 GitOps 帮助自动化云原生应用程序。

什么是头盔?

尽管被描述为包管理器,Helm 是一个强大的工具,用于自动化 Kubernetes 应用程序的安装、部署、升级和管理。 管理 Kubernetes 宣言是一项跨系统变得越来越复杂的任务。 单个排序需要重复的多个 YAML 文件和硬编码值。 Kubernetes 需要一种更好的方法来通过简单的打包格式来管理 YAML 文件,这导致了 helm 图表。 但是,Helm 的用途超出了模板。

图表

Helm 图表是可用于 Kubernetes 应用程序的单元。 每个图表都可以包含文件、元数据和应用程序基础架构。 用 Go 编写的图表将存储在具有相关变量、版本和描述的特定模板目录中。 通过将这些图表作为存档存储在存储库中,您可以在整个开发团队中共享它们以供重复使用。

在 Kubernetes 集群中安装图表副本后,它被称为输出。 每次使用图表时都会创建一个新版本,这可能会发生多次。 出版物可帮助您监控和安装图表。

以下是使用 Helm 时需要了解的一些重要规则。

Chart.YAML:保存图表描述的主文件

Values.YAML:包含图表默认值的文件

图表:带有子图表的目录

模板:定义为模板的 Kubernetes 源目录

模板

模板文件夹是 Helm 的一个关键特性。 它包含应用程序的配置文件,然后将其应用于集群。 模板目录中的文件从 values.YAML 中调用它们的值。

为什么选择 Helm?

Helm 为持续交付环境增加了巨大的价值,因为它带来了以下好处。

提高生产力:

Helm(以及 Flux 等其他排序工具)允许您使用单个按钮或单个命令对软件进行排序。 这将使您的团队只专注于软件开发。

使过程更容易:

图表的概念允许您跨管道(开发、测试和生产)或跨不同团队的工作流程复制相同的图表。 这大大减少了问题。

测量:

图表旨在与 Kubernetes 集群架构保持一致,从而促进可扩展性。

轻松取款:

Helm 管理所有版本,从而在出现问题时轻松进行更改。

GitOps 同时利用 Helm 和 Flux

Helm 可以管理复杂的发布并在您测量时保持简单。 然而,随着变化的逐步引入,Helm 将需要额外的工具来更新 Kubernetes 集群。

Flux 是 Helm 的出色填充解决方案,因为它充当 Helm 与定义整个 Kubernetes 集群和实用程序规范的所有重要 Git 存储库之间的桥梁。

Flux 是基于 GitOps 模型的部署自动化解决方案,它使 Git 成为所有更改的起点和真正的源头。 Flux 允许您保持代码存储库和 Kubernetes 集群之间的一致性,并在引入代码更改时自动排序。

简而言之,Flux Helm 通过将图表从 Git 同步到 Kubernetes 集群来自动发布图表。

Flux 如何与 Helm 一起工作?

要将 Flux 用作 GitOps 运算符,您需要将所有 Helm 图表及其 YAML 文件和 Kubernetes 自定义资源保存在 Git 存储库中。 此外,您将这些源的不变图像放在容器注册表中。

一旦你通过“Pull”请求对 Git 进行了更改,Flux 将检查你的存储库并提供必要的资源。 然后将更改合并到生产集群中。 当然,这简化了流程,并且您可以做更多事情——例如吸烟测试或批准特定于 SRE 的更改——但现在,让我们保持简单。

如果您想了解有关 Flux 2 和 Helm 如何协同工作以提高速度和可靠性同时减少空闲时间的更多信息,请查看 Scott Rigby 的 YouTube 演讲。

结论

Helm 显着降低了运行 Kubernetes 的难度。 它通过图表或模板的概念为 GitOps 管道增加了巨大的价值。 也就是说,除了模板之外还有其他要求,即端到端部署自动化。 这就是需要使用 Flux(或 Weave GitOps,内置于 Flux)之类的工具来使用 helm 的地方。 此外,类似 Magalix 的解决方案可确保 Helm 版本兼容且安全。

Weave KitApps 是一种持续交付解决方案,可让您大规模管理 Kubernetes。 这使得任何公司都可以轻松采用和实施 GitOps。 Weave GitOps 使用“gitops install”等命令简化功能集群,以启用 GitOps 和“gitops add app”添加到您的应用程序。 这些命令抽象出部署自动化中涉及的底层复杂任务。 Weave GitOps 汇集了整个 GitOps 管道,包括 Helm、Flux、Magalix 等,因此您可以开始使用 GitOps,而不会浪费任何时间。

如何成为亚马逊卖家的简单步骤

餐饮数字营销