专业的编程技术博客社区

网站首页 > 博客文章 正文

ArgoCD介绍(argocd github)

baijin 2024-11-09 11:08:00 博客文章 4 ℃ 0 评论

ArgoCD介绍

Argo CD是用于Kubernetes的声明性GitOps持续交付工具,应用程序定义,配置和环境应为声明性的,并应受版本控制,应用程序部署和生命周期管理应该是自动化、可审核且易于理解

Argo CD遵循GitOps模式,该模式使用Git仓库作为定义所需应用程序状态的真实来源

Argo CD可在指定的目标环境中自动部署所需的应用程序状态,应用程序部署可以在Git提交时跟踪对分支,标签的更新,或固定到清单的特定版本

ArgoCD架构图

Argo CD被实现为kubernetes控制器,该控制器持续监视正在运行的应用程序,并将当前的活动状态与所需的目标状态(在Git存储库中指定)进行比较。当已部署应用程序的运行状态偏离目标状态时将被argoCD视为OutOfSync。

Argo CD报告并可视化差异,同时提供了自动或手动将实时状态同步回所需目标状态的功能。在Git存储库中对所需目标状态所做的任何修改都可以自动应用并同步到指定的目标环境中。

ArgoCD支持的Kubernetes 配置清单包括helm charts、kustomize或纯YAML/json文件等

  • 使用kubesphere devops实现CI部分, CD部分由argoCD完成;
  • ArgoCD持续监测git仓库某个目录下yaml文件变动,自动将yaml文件部署到k8s集群;
  • ArgoCD持续监测harbor镜像仓库某个镜像tag变动,自动将最新镜像部署到k8s集群

https://github.com/argoproj/argocd-example-apps

部署ArgoCD

argocd有多种部署方式,可以直接部署yaml文件

kubectl create namespace argocd

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

使用helm方式部署,可直接指定argocd server service类型nodePort:

helm repo add argo https://argoproj.github.io/argo-helm

helm install argocd \

--namespace=argocd --create-namespace \

--set server.service.type=NodePort \

argo/argo-cd


二:架构说明


它的优势总结如下:

  • 应用定义、配置和环境信息是声明式的,并且可以进行版本控制;
  • 应用部署和生命周期管理是全自动化的,是可审计的,清晰易懂;
  • Argo CD是一个独立的部署工具,支持对多个环境、多个Kubernetes集群上的应用进行统一部署和管理

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表