云原生CI/CD | Argo CD 实战介绍 (二)

发布于:2025-03-26 ⋅ 阅读:(26) ⋅ 点赞:(0)

测试: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: myapp
  replicas: 2
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: nginx:latest
        ports:
        - containerPort: 80
        
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80

#application的配置清单
# application.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp-argo-application
  namespace: argocd
spec:
  project: default
 
  source:
    repoURL: https://github.com/yangchuansheng/argocd-lab.git
    targetRevision: HEAD
    path: dev
  destination: 
    server: https://kubernetes.default.svc
    namespace: myapp
 
  syncPolicy:
    syncOptions:
    - CreateNamespace=true
 
    automated:
      selfHeal: true
      prune: true

Argo CD 默认情况下每 3 分钟会检测 Git 仓库一次,用于判断应用实际状态是否和 Git 中声明的期望状态一致,如果不一致,状态就转换为 OutOfSync。默认情况下并不会触发更新,除非通过 syncPolicy 配置了自动同步。

 

蓝绿部署

蓝绿部署核心流程

  • 部署新版本(Green)​:在旧版本(Blue)运行的同时,部署新版本但不接收外部流量。

  • 验证新版本