Obsah

ArgoCD (GitOps pro Kubernetes)

ArgoCD je deklarativní nástroj pro průběžné doručování (Continuous Delivery) určený výhradně pro Kubernetes. Implementuje metodologii GitOps, kde Git slouží jako „jediný zdroj pravdy“ (Single Source of Truth) pro stav infrastruktury.

ArgoCD běží jako kontrolér uvnitř Kubernetes clusteru a neustále porovnává stav definovaný v Gitu se stavem skutečně běžícím v clusteru.

Základní principy GitOps s ArgoCD

Klíčové komponenty

Stav aplikace v ArgoCD

ArgoCD používá dva základní ukazatele pro stav aplikace:

Stav Popis
Synced Stav v clusteru přesně odpovídá tomu, co je v Gitu.
Out of Sync V Gitu je novější verze nebo někdo ručně změnil konfiguraci v clusteru.
Healthy Všechny prostředky (Pody, Services) běží v pořádku.
Degraded Některé části aplikace selhaly (např. CrashLoopBackOff).

Podporované formáty konfigurace

ArgoCD není omezeno jen na čisté YAML soubory. Podporuje:

Praktická ukázka: Definice aplikace

V ArgoCD definujete objekt typu Application, který říká: „Vezmi tento kód z tohoto Gitu a nasaď ho do tohoto clusteru“.

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: moje-aplikace
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/firma/web-app.git
    targetRevision: HEAD
    path: overlays/production
  destination:
    server: https://kubernetes.default.svc
    namespace: prod-namespace
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Výhody oproti tradičnímu CI/CD

Bezpečnostní poznámka: Protože má ArgoCD plná práva k zápisu do clusteru, je kritické správně nastavit RBAC (Role-Based Access Control) a SSO (Single Sign-On).

Zpět na DevOps