Flamingo:用Flux扩展ArgoCD持续部署

love374
发布于 2023-7-24 16:22
浏览
0收藏

Flux 和 Argo CD 都是 Kubernetes 上流行的应用程序部署工具,但具有不同的工作流程和扩展。这篇博文展示了用户如何使用Flamingo(Argo CD的Flux子系统)获得“两全其美”。
在不断扩展的DevOps和GitOps工具生态系统中,Flux和ArgoCD作为著名的CNCF毕业项目脱颖而出,拥有许多热情的用户和案例研究。
但是,随着组织扩展和采用各种技术,他们可能需要更通用的 GitOps 解决方案。合规性就是一个很好的例子 - 大型企业将满足各种团队的约束、偏好和要求。随着变量数量的增加,各个GitOps工具难以满足这些需求,因为:
• 管理基础设施扩展(如Terraform)的复杂性
• 使用签名的OCI映像进行可信应用程序交付的必要性
• 对企业管理和合规解决方案的需求
在这篇博文中,我们将展示 Flux和ArgoCD如何协同工作来解决这些平台工程挑战。

Flamingo 简介

Flamingo——Argo的Flux子系统——是一种将 Flux 集成到 Argo CD 中的解决方案,可在 Kubernetes 集群中获得无缝的GitOps体验。
Flamingo是一种即插即用的非侵入性组件,可供任何Argo CD用户今天探索。用户可能还希望通过添加 Weave GitOps Assured 或 Enterprise 来添加新的仪表板、模板和策略管理。

Flamingo:用Flux扩展ArgoCD持续部署-鸿蒙开发者社区

平台工程 - 超越 Argo CD

Argo CD提供了固执己见的应用程序体验,但它具有紧密耦合的架构,可能会影响其在平台工程中的灵活性。Argo CD将Web UI和用户存储与以应用程序为中心的模型和CD工具紧密结合。这会使Argo CD核心功能的定制或扩展更具挑战性。
例如,在开发人员平台中,可能需要从签名的 OCI 映像部署Kustomization清单,以提高 Kubernetes 部署的安全性和透明度。Argo CD的架构使得支持这一点以及其他影响“核心”设计的功能变得更加困难。
另一个例子是Terraform集成。大多数云原生平台工程师希望应用程序同时部署 Kubernetes 和 Terraform 组件(或类似组件)。Argo CD 的Kubernetes 应用程序模型不支持像Terraform这样的各种基础设施管理用例。Argo的单个应用程序自定义资源 (CRD) 将 Kustomization 和 Helm 图表安装整合到规范中,而应用程序控制器的任务是协调两者。这会导致在尝试集成Terraform支持时规范复杂且难以维护。
作为最后一个例子,我们将探讨为什么GitLab面临与Argo CD中发现的类似的限制,选择Flux作为他们首选的GitOps集成解决方案。

开发人员平台 - GitLab 选择 Flux

GitLab 是领先的基于Web的DevOps 平台,使团队能够管理项目、协作和自动化 CI/CD 管道。为了在产品中为用户提供无缝高效的 GitOps 体验,GitLab 评估了各种 GitOps 工具,包括 Flux 和 Argo CD。尽管Argo CD在GitOps领域是一个流行和成熟的选择,但GitLab发现了一些局限性。Argo CD专注于成为一体化解决方案,并且依赖于自定义API,这使得它不太适合与GitLab集成。
经过彻底的评估,GitLab 最终选择了 Flux 来增强其 GitOps 功能。现在,让我们深入研究此决定背后的原因:
• 灵活性:Flux 基于组件的设计可实现无缝的 GitLab 集成,并避免依赖单个工具。

  • Kubernetes API 兼容性:Flux 使用标准 Kubernetes API 简化了 GitLab UI 集成,简化了 GitOps 体验。

• 更快的价值交付:Flux 的现有功能、采用和社区支持加快了向 GitLab 客户的价值交付。
下一节将探讨 Flux 如何为 GitOps 提供更具可扩展性和模块化的方法。

Flux模块化如何克服ArgoCD的局限性

从技术上讲,Flux是一组控制器,它们为GitOps提供了比 ArgoCD更具可扩展性和模块化的方法,每个控制器都有其职责范围并在Flux系统中独立运行。这种模块化架构允许用户自定义和扩展Flux以满足他们的特定要求。例如,Kustomize 控制器协调 Kustomization CRD,而 Helm 控制器管理 Helm版本。借助 Flux,用户可以创建自定义控制器来管理特定类型的应用程序或工作负载,例如 Terraform 资源。
Flux模块化架构的一个显着优势是,它支持开发第三方控制器,如本机Terraform控制器(Weave GitOps Terraform Controller,商业Weave GitOps产品的标准组件),使用户能够使用GitOps原则管理基础设施即代码。
如果您已经是Argo CD用户,我们承认您在Argo CD上的时间和投资的重要性。考虑到这一点,我们很高兴推出Flamingo,这是一个无缝扩展,旨在通过集成 Flux 功能来增强您的 GitOps 体验。我们的目标是使用最好的 GitOps 工具丰富您的 GitOps 之旅,同时保留其熟悉的环境。

Flamingo:用Flux扩展ArgoCD持续部署-鸿蒙开发者社区

Flamingo:Flux和Argo CD集成

Flamingo是ArgoCD的直接扩展,其中包括Flux作为子系统。用户可以利用 Flux 的优势,而无需将整个 GitOps 设置迁移到新工具。Flamingo被设计为易于使用,可以使用相同的配置进行安装,并且与Argo CD一样。它包括Argo CD的所有功能和Flux的其他优势和功能,例如使用Weave GitOps Terraform控制器管理基础设施即代码的能力。
Flamingo结合了Flux和Argo CD的优点,用于在Kubernetes集群上实现GitOps。Flamingo提供了无缝体验,将Flux的自动化集成到Argo CD的用户友好界面中。用户可以管理Argo CD工作负载,同时利用Flux的附加功能。您还可以确保Argo CD中的上游CVE快速向后移植到Flamingo,从而维护安全稳定的环境。

Flamingo:用Flux扩展ArgoCD持续部署-鸿蒙开发者社区

如果你是一个忙碌的专业人士已经在使用ArgoCD,你可能会因为担心切换工具而犹豫是否要尝试Flux。
但是,Flamingo将Flux无缝集成到您现有的ArgoCD设置中,通过额外的优势和功能增强您的GitOps流程。Flamingo简化了将Flux与ArgoCD集成的过程,作为两个工具之间的桥梁,并允许您利用Flux的优势,而无需迁移整个GitOps设置或离开Argo CD。Flamingo降低了管理多个GitOps工具的复杂性,通过将Flux的自动化功能与Argo CD的用户友好界面相结合,为管理部署提供了集成的体验。
Flamingo确保ArgoCD和Flux之间的兼容性,使您能够在不中断现有设置或流程的情况下利用Flux的功能。此集成提供了统一的 GitOps 体验,利用这两种工具的优势来增强 GitOps 流程,而无需放弃当前工具。

开发者平台: Weave GitOps & Flux

Flux是用于管理 Kubernetes 集群上的 GitOps 进程的强大工具。Weaveworks 为 Flux 提供了一个免费的开源仪表板,称为 Weave GitOps,它提供了 Kubernetes 集群上 GitOps 的全面视图。适用于 Flux 的开源 UI 为管理 Flux 工作负载提供了一个用户友好的界面,并允许用户可视化和查看 Flux 控制器、资源和事件。
Weave GitOps 是用户友好型开发人员平台的基础,可以轻松管理和可视化 Kubernetes 集群上的 GitOps 流程。用户界面包括各种功能,允许用户管理 Git 存储库、映像、Helm 版本、警报、通知和策略 - 增强 GitOps 流程并在 Kubernetes 部署中实现更高的自动化和效率。您可以使用预定义的 GitOps 模板简化工作负载,甚至可以从 VSCode 等编辑器中简化工作负载。
Weave GitOps Enterprise 包括其他功能,例如 GitOps 操作的可视化、错误通知以及管理 Git 存储库、Kustomization、Helm 版本和 Terraform 的能力。DevOps 团队能够管理警报、通知、推广管道和策略,以实现可靠、稳定和安全的应用程序交付。

Flamingo入门:安装和配置

要使用Flamingo,您需要正确安装和配置它。以下是帮助您开始使用Flamingo的分步指南:
1. 安装默认的助焊剂控制器集。

brew install fluxcd/tap/flux
flux install
  1. 从提供的表中选择要安装的兼容版本的Flamingo。

Flux   Argo CD   Image
v0.41   v2.6      v2.6.7-fl.4-main-c4ce7dcc
v0.41   v2.5      v2.5.16-fl.3-main-c4ce7dcc
v0.41   v2.4      v2.4.28-fl.3-main-c4ce7dcc
v0.38   v2.3      v2.3.13-fl.3-main-b0b6148f
v0.37   v2.2      v2.2.16-fl.3-main-2bba0ae6
  1. 升级您现有的ArgoCD安装,替换当前的ArgoCD安装,或从头开始安装FSA,具体取决于您的需求:
  • 如果要升级现有的ArgoCD安装,请使用选项1。
  • 如果要替换当前的ArgoCD安装,包括所有设置,请使用选项2。
  • 如果您没有现有的ArgoCD安装,请使用选项3从头开始安装Flamingo。

选项 1 - 升级现有的 Argo CD

export VERSION=v2.6.7-fl.4-main-c4ce7dcc
kustomize build “https://github.com/flux-subsystem-argo/flamingo//release?ref=${VERSION}” \
  | yq e '. | select(.kind=="Deployment" or .kind=="StatefulSet")' - \
  | kubectl -n argocd apply -f - 

选项 2 - 替换当前的 Argo CD

export VERSION=v2.6.7-fl.4-main-c4ce7dcc
kubectl -n argocd apply -k https://github.com/flux-subsystem-argo/flamingo//release?ref=${VERSION}

选项 3 - 从头开始安装Flamingo

export VERSION=v2.6.7-fl.4-main-c4ce7dcc
kubectl create ns argocd
kubectl -n argocd apply -k https://github.com/flux-subsystem-argo/flamingo//release?ref=${VERSION}

下一步是什么?

如果您是当前的ArgoCD用户,请考虑立即下载Flamingo,并尝试Weave GitOps开源。这是扩展 GitOps 工作流以使用 Weave GitOps Terraform 控制器管理基础结构即代码的最简单方法。对于需要其他功能(如多租户、通知、管道提升和策略引擎)的企业团队,请联系 sales@weave.works 进行演示。
如果您目前是红帽 OpenShift GitOps 用户,请考虑使用 Flamingo 将您的体验提升到一个新的水平,它汇集了 Argo CD 和 Flux 的精华。通过联系我们在 sales@weave.works的专业销售团队,体验增强的 OpenShift GitOps 工作流程并提高生产力,了解有关 Flamingo 和 Weave GitOps 如何使您的 OpenShift 投资受益的更多信息。


文章转载自公众号:DevOps云学堂

分类
标签
已于2023-7-24 16:22:46修改
收藏
回复
举报
回复
    相关推荐