云原生CD 工具
工具集
云原生时代,Jenkins 也暴露出很多的问题,Master单点故障、磁盘存储、内存占用、并行构建性能等。因此Jenkins 也推出了 Jenkins X 作为基于 Kubernetes 的新一代流水线引擎。同时还有像Tekton、Argo CD等较为流行的基于 Kubernetes 原生的CI/CD工具。
特性/工具 | Flux | ArgoCD | Jenkins X |
安装方式 | 支持Helm Charts或Kustomize安装 | Kubernetes原生方式安装 | 使用jx boot命令安装,需要广泛的K8s权限 |
GitOps部署 | 定期拉取远程Git仓库,支持自动和手动触发同步 | 跟踪Git仓库中的应用程序清单更改 | 合并到master后触发Tekton流水线,遵循GitOps原则 |
管理 | 作为单个二进制文件在Pod中部署,几乎不需要管理 | 所有配置存储在K8s资源中,可使用GitOps管理自身 | 通过更新配置文件调整内部配置,自身由GitOps管理 |
多租户支持 | 不支持多租户模式,但可通过多实例和不同Git仓库实现团队隔离 | 支持多租户,使用项目概念映射团队和应用程序 | 不支持多租户,不同团队共享资源和组件 |
多集群支持 | 可监视不同Git仓库并同步到不同K8s命名空间 | 可以管理运行在其上的K8s集群和外部集群 | 应用程序环境可在其他集群中运行,但多集群管理不成熟 |
用户界面 | 无特别提及 | 提供现代Web UI,用于查看部署状态和管理项目 | 无特别提及 |
配置格式支持 | 未特别提及 | 广泛支持不同格式,如Kustomize、Helm、Ksonnet、YAML等 | 未特别提及 |
自动化功能 | 支持自动部署新版本容器镜像和垃圾回收 | 支持自动部署新版本容器镜像和垃圾回收 | 集成Skaffold和Kaniko构建容器镜像,使用Helm打包K8s清单 |
附加功能 | 重新应用偏移资源 | 配置偏移检测,多集群配置管理 | 快速入门新项目,配置Git仓库,ChatOps,预览环境 |
局限性 | 只支持单一仓库,但可通过多实例克服 | 配置保存在Git仓库中文件,团队变更可能繁琐 | 多租户功能不足,安装大量组件可能导致资源重复 |
其他特点 | 轻量级,易于理解和故障排除 | 功能丰富,与K8s完美集成 | 提供全方位的CI/CD解决方案,但复杂度高 |

Jenkins X
Jenkins X 基于松耦合架构的 DevOps 模型,被设计用来支持在多个团队间,部署大量可重复、可管理的分布式微服务。在Jenkins X的设计中,整合了Tekton,Helm,Draft,GitOps,以及Nexus,Chartmuseum,Monocular,Skaffold等诸多系统和工具,从而实现自动构建编译环境,生成容器镜像,流水线,自动化部署,并通过简单的Review实现不同环境间的自动发布。

Argo CD
Argo CD 是通过一个 Kubernetes 控制器来实现的,它持续 watch 正在运行的应用程序并将当前的实时状态与所需的目标状态( Git 存储库中指定的)进行比较。已经部署的应用程序的实际状态与目标状态有差异,则被认为是异常状态,Argo CD 会报告显示这些差异,同时提供工具来自动或手动将状态同步到期望的目标状态。在 Git 仓库中对期望目标状态所做的任何修改都可以自动应用反馈到指定的目标环境中去。

Loading...