赞
踩
总结ArgoCD是基于 kubernetes 的声明式 Gitops 持续部署工具
Argo CD 是一个基于 GitOps 的持续交付工具,用于管理和部署应用程序到 Kubernetes 集群。它通过将声明性配置文件与实际状态进行比较,并自动调整实际状态以保持一致,实现了基于 GitOps 的持续交付和应用程序管理。
以下是 Argo CD 的一些主要特点和功能:
Argo CD 是一个强大的工具,可以简化和自动化 Kubernetes 应用程序的部署和管理过程。它遵循 GitOps 的最佳实践,提供了可靠、可扩展和可观察的持续交付解决方案。无论是单个应用程序还是大规模的多环境部署,Argo CD 都可以帮助您实现一致性和可控性。
GitOps 是一种基于 Git 的运维方法论,它将应用程序的配置和部署状态存储在版本控制系统中,通常是 Git。通过使用 GitOps,团队可以实现基础设施即代码(Infrastructure as Code)和持续交付(Continuous Delivery),以实现更高效、可靠和可重复的应用程序部署和管理。
GitOps 的核心思想是将应用程序的期望状态(Desired State)以声明性的方式定义并存储在版本控制系统中。这包括应用程序的配置、部署规范、服务拓扑和环境变量等。团队成员可以通过提交代码到版本控制系统来更新应用程序的期望状态。
GitOps 的工作流程如下:
通过使用 GitOps,团队可以实现以下优势:
总而言之,GitOps 提供了一种强大的方式来管理和部署应用程序,通过将应用程序的期望状态存储在版本控制系统中,并通过自动化工具实现状态的自动调整,使团队能够实现持续交付、可靠性和可审计性。
Argo CD 的工作流程如下:
通过以上工作流程,Argo CD 实现了基于 GitOps 的持续交付和应用程序管理。它简化了应用程序的部署和更新过程,并提供了可视化界面和监控功能,使用户能够轻松地管理和监控 Kubernetes 环境中的应用程序。
下面是对 Argo CD 和 Jenkins 进行比较的扩展表格:
特点 | Argo CD | Jenkins |
---|---|---|
功能定位 | 应用程序部署和持续交付 | 自动化构建、测试和部署 |
架构和工作原理 | 基于 Kubernetes 架构,使用 GitOps 方法 | 独立的自动化服务器,可在不同操作系统上运行 |
CI/CD 功能 | 应用程序版本控制、回滚、自动化部署和健康检查 | 广泛的构建、测试和部署功能 |
社区和生态系统 | 活跃的社区,与其他云原生工具有良好的集成 | 庞大的用户社区和丰富的插件生态系统 |
可扩展性 | 支持多集群部署,可与其他工具和平台集成 | 丰富的插件生态系统,可定制和扩展功能 |
可视化界面 | 提供直观的 Web 界面和应用程序拓扑图 | 提供 Web 界面和流水线可视化编辑器 |
配置管理 | 使用声明性配置文件进行应用程序管理 | 支持流水线脚本和可视化编辑器进行配置 |
持续交付流程 | 基于 GitOps 方法实现自动化部署和更新 | 可以定义复杂的流水线来处理构建和部署流程 |
可观测性 | 提供应用程序状态监控和事件通知 | 支持构建和部署日志记录和报告 |
安全性 | 支持 RBAC 权限控制和敏感数据管理 | 提供安全性插件和功能来保护构建和部署过程 |
Argo CD 和 Jenkins 是两个在持续集成和持续交付 (CI/CD) 领域常用的工具,它们有一些共同的目标,但在功能和使用方式上有一些区别。下面是对 Argo CD 和 Jenkins 进行对比的一些关键点:
综上所述,Argo CD 和 Jenkins 在功能和使用方式上有一些区别。Argo CD 更专注于应用程序的部署和持续交付,使用 GitOps 方法来实现自动化。Jenkins 则是一个通用的自动化服务器,提供了广泛的插件和流水线功能,适用于各种构建、测试和部署场景。选择使用哪个工具取决于具体的需求和使用情景。
Kustomize 是一个用于 Kubernetes 应用程序配置管理的开源工具。它允许您对 Kubernetes 配置进行自定义和重用,以便根据不同的环境、部署目标或团队需求生成不同的配置。
以下是 Kustomize 的一些主要特点和功能:
Kustomize 的设计理念是提供一种简单而灵活的方式来管理 Kubernetes 应用程序的配置。它强调声明性配置和可重用性,使得配置管理变得更加可维护和可扩展。无论是单个应用程序还是复杂的多环境部署,Kustomize 都可以帮助您轻松管理和定制 Kubernetes 配置。
Argo CD 和 Kustomize 是两个独立但可以互补的工具,它们在 Kubernetes 应用程序的部署和管理过程中可以一起使用。
在实际应用中,您可以使用 Kustomize 来管理和定制应用程序的配置,将其组织为可重用的基础配置和环境特定的覆盖文件。然后,您可以将这些配置文件存储在 Git 存储库中,并使用 Argo CD 来监视和部署这些配置文件。Argo CD 可以与 Kustomize 集成,自动识别和应用 Kustomize 配置,以确保应用程序的部署和同步符合预期。
因此,Argo CD 和 Kustomize 可以一起使用,以实现基于 GitOps 的持续交付和灵活的配置管理。您可以使用 Kustomize 来生成和管理应用程序的配置,然后使用 Argo CD 来自动化部署和管理这些配置。这种组合可以提供更高效、可重复和可控的应用程序交付和配置管理流程。
kubekey | k9s
介绍两种安装方式,方式1:在kubesphere3.3中开启devops组件也会安装argocd;方式2:在k8s中部署如下:
# kubectl create namespace argocd
# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install .yaml
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
首页展示引用列表,以及左上方有应用创建的入口
在 Argo CD 中创建应用时,您需要提供一些配置信息来定义应用的源代码、目标环境和部署方式。这些配置信息在 Argo CD 中分为四个主要部分:General(常规)、Source(源代码)、Destination(目标环境)和Directory(目录)。
通过提供这些配置信息,您可以在 Argo CD 中创建一个应用程序,并将其与源代码存储库关联起来,指定目标环境以及配置文件的位置。Argo CD 将使用这些信息来自动部署和同步应用程序的状态,确保它与配置文件的期望状态保持一致。
在 Argo CD 的 SYNC OPTIONS 中,还有一些其他选项可以用于更精细地控制应用程序的同步行为。以下是这些选项的介绍:
这些 SYNC OPTIONS 可以根据具体需求进行配置,以实现更精确的同步行为。通过灵活使用这些选项,可以满足特定场景下的同步需求,并确保应用程序的状态与预期保持一致。
在 Argo CD 中,SYNC POLICY(同步策略)用于定义应用程序的自动同步行为。它允许您配置何时以及如何触发应用程序的同步操作。以下是 Argo CD 中的一些常见 SYNC POLICY 选项:
通过合理配置 SYNC POLICY,您可以根据应用程序的特性和需求,定义适合的同步策略,确保应用程序在 Kubernetes 环境中始终保持最新和一致的状态。
功能如下,可手动同步、删除、回滚等。
点击历史记录和回滚,可查看部署历史记录及回滚到历史版本
在 Argo CD 的应用详情中,您会看到以下几个部分的信息:SUMMARY(概要)、PARAMETERS(参数)、MANIFEST(清单)和EVENTS(事件)。下面是对每个部分的介绍:
在 Argo CD 的应用参数(PARAMETERS)部分,有几个参数:VERSION、NAME PREFIX 和 NAME SUFFIX。下面是对每个参数的介绍:
这些参数提供了一种在部署应用时进行自定义配置的方式。通过设置 VERSION 参数,您可以管理不同版本的应用。而使用 NAME PREFIX 和 NAME SUFFIX 参数,可以为应用的资源名称添加统一的前缀和后缀,以便更好地组织和识别资源。这些参数可以根据您的需求进行自定义,并根据应用的特定要求进行配置。
参考官网文档第6小节 ,使用 GitOps 实现应用持续部署
Application | Description |
---|---|
guestbook | 作为普通 YAML 的 hello word 留言簿应用程序 |
ksonnet-guestbook | 作为 ksonnet 应用 |
helm-guestbook | 作为 Helm 图表的留言板应用 |
jsonnet-guestbook | 作为原始 jsonnet 的留言板应用 |
jsonnet-guestbook-tla | 作为原始 jsonnet,支持顶级参数 |
kustomize-guestbook | Kustomize应用程序,部署项目用到的k8s资源清单。和helm类似封装到了一起 |
pre-post-sync | 演示 Argo CD PreSync 和 PostSync 钩子 |
sync-waves | 演示带有钩子的 Argo CD 同步 |
helm-dependency | 演示如何从上游存储库自定义 OTS(现成的)helm 图表 |
sock-shop | 微服务演示应用 (https://microservices-demo.github.io)) |
plugins | 演示配置管理插件用法的应用 |
修改argocd-example-apps\kustomize-guestbook\guestbook-ui-deployment.yaml下镜像,使用《6.云原生之DevOps和CICD》章节CICD制作上传到harbor的镜像。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。