什么是ArgoCD?
ArgoCD是一个为Kubernetes而生的、遵循声明式GitOps理念的持续部署工具,其优势为:
1、应用定义、配置和环境信息是声明式的,并且可以进行版本控制;
2、应用部署和生命周期管理是全自动化的,是可审计的,清晰易懂;
3、ArgoCD是一个独立的部署工具,支持对多个环境、多个Kubernetes集群上的应用进行统一部署和管理。
ArgoCD源自哪里?
ArgoCD是由Intuit主导的开源项目,是Argo项目集合中的一个,Argo项目集合还包括ArgoWorkflow、ArgoRollout、ArgoEvent等项目。4月8日,CNCF技术监督委员会(TechnicalOversightCommittee,TOC)投票决定接受Argo作为孵化级别的托管项目。
Intuit是AWS的重度客户,其在CNCF云原生计算基金会的TechnicalOversightCommittee占有一席。Intuit原来的基础设施是基于AWSEC2的,并采用Spinnaker来部署和管理应用。他们近年来开始转向Kubernetes,并且开发了ArgoCD替代Spinnaker。Intuit使用Kubernetes及ArgoCD的一些数据,如图1所示。
▲图1Intuit对Kubernetes管理规模统计图
ArgoCD在Github的开源工程中是非常活跃的。截止目前,共有个Contributor和超过个Star,并且在持续健康地增长。
▲图2ArgoCD在Gihub上的Star增强趋势图
ArgoCD与其他CD工具(例如Spinnaker、Tekton、JenkinsX)等的具体对比请参考图3。
ArgoCD在CI/CD流程中的位置和作用
▲图4借助于ArgoCD在Kubernetes上的CI/CD流程拓扑图
如图4所示,借助ArgoCD在Kubernetes集群上落地CD,主要通过以下三个步骤来完成。
1、将应用的Git仓库分为ApplicationDeploymentfile和Dockerfile两个库。
■Dockerfile用于存放应用的核心代码以及Dockerbuildfile,后续将会直接打包成Dockerimage;
■ApplicationDeploymentfile可以Kustomize、Helm、Ksconnet、Jsonnet等多种Kubernetes包管理工具来定义;
■以Helm为例,Chart中所使用到的Image由DockerfileCode打包完成后提供。
2、使用Jenkins或Gitlab等CI工具进行自动化构建打包,并将Dockerimagepush到Harbor镜像仓库。
3、使用ArgoCD部署应用。
■ArgoCD可以独立于集群之外,并且支持管理多个Kubernetes集群;
■在ArgoCD上配置好应用部署的相关信息后,ArgoCD便可以正常工作,ArgoCD会自动和代码仓库Applicationdeploymentfile的内容进行校验,当代码仓库中应用属性等信息发生变化时,ArgoCD会自动同步更新Kubernetes集群中的应用;
■应用启动时,会从Harbor镜像仓库拉取Dockerimage。
在应用商店中快速上手ArgoCD
在KubeOperator容器平台上部署ArgoCD非常简单,KubeOperator已经在KubeappsPlus应用商店直接支持一键部署ArgoCD,你只需要去Github下载离线包上传即可使用。
接下来,通过以下几个步骤,将会为大家介绍ArgoCD的具体安装及在CI/CD中的使用方法。
1、在KubeappsPlus应用商店找到ArgoCD应用
▲图5在“KubeappsPlus应用商店”界面通过CD标签找到ArgoCD
2、部署ArgoCD
▲图6在“应用详情”点击“部署”按钮进行应用部署
3、根据需要修改默认配置
▲图7在“应用编辑”页面点击“提交”,进行应用创建
4、安装ArgoCD,并等待服务就绪
▲图8在“我的应用界面”页面点击“应用”,查看应用状态及其他信息
5、通过NodePort的方式访问ArgoCD
▲图9通过NodePort在浏览器访问ArgoCD
▲图10ArgoCD登录成功后的界面
6、在ArgoCDUI界面来创建应用
6.1点击“+NEWAPP”按钮创建应用;
▲图11在ArgoCDUI界面来创建应用
6.2填写应用名称:guestbook;项目:default;同步策略:手动;
▲图12填写应用的相关信息
6.3配置来源。这里配置的是Git,代码仓库的URL配置为Github上的项目地址为:
转载请注明:http://www.0431gb208.com/sjszyzl/1627.html