测试:Argo CD的工作流程
准备 Git 仓库
在 GitHub 上创建一个项目,取名为 argocd-lab,为了方便实验将仓库设置为公共仓库。在仓库中新建 dev 目录,在目录中创建两个 YAML 配置清单,分别是 deployment.yaml
和 service.yaml
。
清单配置文件如下:
#清单配置
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp
spec:selector:matchLabels:app: myappreplicas: 2template:metadata:labels:app: myappspec:containers:- name: myappimage: nginx:latestports:- containerPort: 80# service.yaml
apiVersion: v1
kind: Service
metadata:name: myapp-service
spec:selector:app: myappports:- port: 80protocol: TCPtargetPort: 80#application的配置清单
# application.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:name: myapp-argo-applicationnamespace: argocd
spec:project: defaultsource:repoURL: https://github.com/yangchuansheng/argocd-lab.gittargetRevision: HEADpath: devdestination: server: https://kubernetes.default.svcnamespace: myappsyncPolicy:syncOptions:- CreateNamespace=trueautomated:selfHeal: trueprune: true
Argo CD 默认情况下每 3 分钟会检测 Git 仓库一次,用于判断应用实际状态是否和 Git 中声明的期望状态一致,如果不一致,状态就转换为 OutOfSync
。默认情况下并不会触发更新,除非通过 syncPolicy
配置了自动同步。
蓝绿部署
蓝绿部署核心流程
-
部署新版本(Green):在旧版本(Blue)运行的同时,部署新版本但不接收外部流量。
-
验证新版本