رفتن به محتوا
بازگشت به وبلاگ
دواپس

ArgoCD: تحویل مستمر GitOps برای Kubernetes

استقرار و مدیریت برنامه‌ها روی Kubernetes با ArgoCD: الگوی App of Apps، پالیسی‌های Sync، RBAC و مدیریت چند کلاستری.

مهر ۱۴۰۴
۱۶ دقیقه مطالعه

مقدمه

ArgoCD یک ابزار delivery مستمر اعلانی GitOps برای Kubernetes است. GitOps یعنی مخزن Git شما تنها منبع حقیقت برای وضعیت زیرساخت و اپلیکیشنتان است. ArgoCD مخزن Git شما را به‌طور مستمر زیر نظر دارد و اطمینان می‌دهد که cluster Kubernetes شما با آنچه تعریف شده مطابقت دارد.

نصب ArgoCD

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

# دریافت رمز عبور اولیه
kubectl -n argocd get secret argocd-initial-admin-secret   -o jsonpath="{.data.password}" | base64 -d

ایجاد Application

YAML
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp-production
  namespace: argocd
spec:
  source:
    repoURL: https://github.com/company/k8s-manifests.git
    targetRevision: main
    path: apps/myapp/production

  destination:
    server: https://kubernetes.default.svc
    namespace: production

  syncPolicy:
    automated:
      prune: true      # حذف منابع از Git حذف شده
      selfHeal: true   # بازگشت تغییرات دستی

یکپارچه‌سازی CI/CD

YAML
# .github/workflows/deploy.yml
- name: Update image tag
  run: |
    cd apps/myapp/production
    kustomize edit set image company/myapp=company/myapp:${{ github.sha }}
    git add . && git commit -m "Update to ${{ github.sha }}" && git push

ArgoCD استقرارهای Kubernetes را به یک جریان کاری Git-محور تبدیل می‌کند. هر استقرار قابل ردیابی، هر rollback یک git revert، و وضعیت cluster قابل تأیید در برابر مخزن شما می‌شود.