Workstation Logo
Producten
AI LabsOpenAI AgentsClaude AgentsGrok BotWorkstation CRM (WSL CRM)MarketingAlle Producten
AI-Oplossingen
AI-WerkstationsAI SME PackagesPrivé AIGPU-ClustersEdge AIEnterprise AI LabAI per Industrie
Diensten
PlatformmoderniseringDigitale engineeringDatafundamenten & AIAutonome operatiesAI-adviesDevOps-automatiseringCybersecuritySoftwareontwikkelingAgentontwikkelingMLOps-opzet
Over Ons
PartnersKlantverhalen
Artikelen
Documentatie
WSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7
Blog
ContactLogin
Workstation

AI-werkstations, AI multi-agent software, GPU-infrastructuur en intelligente agentoplossingen voor moderne bedrijven.

Contact

AI-oplossingen

AI-WerkstationsAI SME PackagesPrivé AIGPU-ClustersEdge AIEnterprise AI LabAI per Industrie

Producten

Alle ProductenWSL CRM & ERPMarketingOpenAI AgentsWSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7

Bedrijf

Over OnsWaarom WorkstationPartnersKlantverhalenPrijzenContact

Bronnen

ArtikelenDocumentatieBlogZoekenSitemap
UK-kantoor
77-79 Marlowes, Hemel Hempstead HP1 1LFRoute: neem afrit 20 van de M25, Outer LondonBedrijfsnummer: 11641870Ma - Vr: 9:00 - 18:00 GMT
+44 7515 356 146
België-kantoor
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683Ma - Vr: 9:00 - 18:00 CET
+32 492 45 67 46
India-kantoor
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841

© 2026 Workstation AI. Alle rechten voorbehouden.

PrivacyCookiesServicevoorwaardenWebsite-sitemap

Loading blog...

Home / Blog
DevOpsKubernetesRke2

Kubernetes continue levering: GitOps-pijplijnen met ArgoCD en Flux

Bouw betrouwbare, geautomatiseerde implementatiepijplijnen voor Kubernetes met behulp van GitOps met ArgoCD en Flux

Balinder Walia27 mei 20258 min read

Continue levering op Kubernetes is veel verder dan eenvoudig geëvolueerd kubectl apply opdrachten. Moderne teams adopteren GitOps, een paradigma dat Git gebruikt als de enige bron van waarheid voor declaratieve infrastructuur- en applicatieconfiguratie. Door de principes van GitOps te combineren met tools als ArgoCD en Flux CD kunnen organisaties betrouwbare, controleerbare en geautomatiseerde implementatiepijplijnen realiseren die over clusters en omgevingen heen kunnen worden geschaald.

Deze handleiding behandelt de architectuur, opzet en best practices voor het bouwen van pijplijnen voor continue levering op productieniveau op Kubernetes met behulp van de GitOps-aanpak.

GitOps-principes

GitOps is gebouwd op vier kernprincipes die de manier waarop teams implementaties beheren fundamenteel veranderen:

CI/CD-pijplijn met GitOpsGit-pushBroncodeBouwenCompileren & LintTestEenheid & IntegratieRegisterAfbeelding duwenImplementeren op K8'sArgoCD/FluxArgoCDSynchroniseren en afstemmenFlux-cdGit-verzoenerGit Repository = Enige bron van waarheid
  • Declaratieve configuratie - De gehele gewenste staat van uw systeem wordt declaratief beschreven. Voor Kubernetes betekent dit YAML-manifesten, Helm-grafieken of Kustomize-overlays die zijn opgeslagen in Git.
  • Versiegestuurd - Git dient als de enige bron van waarheid. Elke wijziging gaat via een pull-request, waardoor een compleet audittraject wordt geboden en eenvoudige rollbacks mogelijk worden gemaakt door commits terug te draaien.
  • Geautomatiseerde afstemming - Een agent die in het cluster draait, vergelijkt voortdurend de gewenste status in Git met de werkelijke status in het cluster en stemt eventuele afwijkingen automatisch af.
  • Continue observatie - Het systeem bewaakt voortdurend zowel de Git-repository als de clusterstatus, waarschuwt bij afwijkingen en zorgt ervoor dat het cluster altijd overeenkomt met de aangegeven configuratie.

Deze principes elimineren handmatige implementatiestappen, verminderen menselijke fouten en zorgen voor een consistente workflow, ongeacht de clustercomplexiteit.

ArgoCD-architectuur en -installatie

ArgoCD is de meest gebruikte GitOps-tool voor Kubernetes. Het biedt een krachtige web-UI, CLI en API voor het beheren van applicatie-implementaties in clusters.

GitOps-workflowOntwikkelaarPush/PR samenvoegenGit-opslagplaatsGewenste staatArgoCDHorloges repoDetecteert driftK8s-clusterLeef staatAutomatisch gesynchroniseerdTerugdraaien = Git terugdraaienAudit Trail: Elke implementatie is een Git-commit

Kerncomponenten

ArgoCD bestaat uit verschillende belangrijke componenten die samenwerken:

  • API-server - Geeft een gRPC/REST API weer en bedient de webinterface. Verwerkt authenticatie, RBAC en externe integraties.
  • Repository-server - Kloont Git-opslagplaatsen en genereert Kubernetes-manifesten vanuit Helm-grafieken, Kustomize of gewone YAML.
  • Applicatiecontroller - Bewaakt voortdurend actieve applicaties en vergelijkt de live-status met de gewenste status in Git.
  • Opnieuw - Biedt caching voor de repositoryserver en applicatiecontroller.

Installatie

Implementeer ArgoCD in uw cluster met behulp van de officiële manifesten of het Helm-diagram:

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

# Or via Helm
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd \
  --namespace argocd \
  --create-namespace \
  --set server.service.type=LoadBalancer

Toepassingen definiëren

ArgoCD maakt gebruik van een Application aangepaste resource om te definiëren wat er moet worden geïmplementeerd en waar. Hier is een typische toepassingsdefinitie:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-web-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/myorg/k8s-manifests.git
    targetRevision: main
    path: apps/my-web-app/overlays/production
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
    retry:
      limit: 5
      backoff:
        duration: 5s
        factor: 2
        maxDuration: 3m

De syncPolicy.automated sectie maakt automatische synchronisatie mogelijk. De prune optie verwijdert bronnen die niet langer in Git zijn gedefinieerd, while selfHeal zet handmatige wijzigingen terug die rechtstreeks in het cluster zijn aangebracht.

Flux CD: een alternatieve aanpak

Flux CD hanteert een andere architecturale benadering van GitOps. In plaats van een gecentraliseerde server met een gebruikersinterface, werkt Flux als een set Kubernetes-controllers die elk een specifiek probleem afhandelen.

Flux-componenten

  • Broncontroller - Beheert Git-opslagplaatsen, Helm-opslagplaatsen en OCI-artefactbronnen.
  • Kustomize-controller - Past Kustomize-overlays en gewone YAML-manifesten toe.
  • Helm-controller - Beheert Helm-kaartreleases via HelmRelease aangepaste bronnen.
  • Meldingsbeheerder - Verwerkt inkomende en uitgaande gebeurtenissen, geïntegreerd met Slack-, Teams- en webhook-providers.
  • Controllers voor beeldautomatisering - Scan containerregisters en update manifesten wanneer er nieuwe afbeeldingen beschikbaar zijn.

Flux-bootstrap

# Bootstrap Flux on a cluster with a GitHub repository
flux bootstrap github \
  --owner=myorg \
  --repository=fleet-infra \
  --branch=main \
  --path=clusters/production \
  --personal

# Define a HelmRelease
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: nginx-ingress
  namespace: ingress-system
spec:
  interval: 5m
  chart:
    spec:
      chart: ingress-nginx
      version: "4.x"
      sourceRef:
        kind: HelmRepository
        name: ingress-nginx
        namespace: flux-system
  values:
    controller:
      replicaCount: 3
      metrics:
        enabled: true

ArgoCD versus Flux: wanneer moet u kiezen welke?

ArgoCD is ideaal wanneer u een rijke web-UI nodig heeft voor zichtbaarheid, multi-tenancy met fijnmazige RBAC en een gecentraliseerd beheervlak. Flux schittert in omgevingen die de voorkeur geven aan een lichtgewicht, op controllers gebaseerde architectuur, beeldautomatiseringsmogelijkheden nodig hebben of een diepere integratie met het Kubernetes API-ecosysteem willen.

Helmdiagrambeheer in GitOps

Helm-diagrammen zijn het de facto verpakkingsformaat voor Kubernetes-toepassingen. In een GitOps-workflow vereist het beheren van Helm-waarden in verschillende omgevingen een zorgvuldige organisatie.

# Repository structure for multi-environment Helm management
k8s-manifests/
  base/
    my-app/
      Chart.yaml
      values.yaml          # Default values
      templates/
        deployment.yaml
        service.yaml
        ingress.yaml
  environments/
    dev/
      my-app/
        values.yaml        # Dev overrides
    staging/
      my-app/
        values.yaml        # Staging overrides
    production/
      my-app/
        values.yaml        # Production overrides

Zowel ArgoCD als Flux ondersteunen Helm native. ArgoCD geeft kaarten server-side weer via de repository-server, terwijl Flux de Helm SDK rechtstreeks in de Helm-controller gebruikt.

Implementatiestrategieën

Door de juiste implementatiestrategie te kiezen, worden de risico's geminimaliseerd en worden releases zonder downtime gegarandeerd.

Rollende updates

De standaard Kubernetes-strategie. Pods worden geleidelijk vervangen door nieuwe versies. Configureer maxSurge En maxUnavailable om de uitrolsnelheid te controleren.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 5
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    spec:
      containers:
        - name: app
          image: myapp:v2.1.0
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10

Blauw-groene implementaties

Voer twee identieke omgevingen uit (blauw en groen). Implementeer de nieuwe versie in de inactieve omgeving, verifieer deze en schakel vervolgens het verkeer om. Dit zorgt voor een onmiddellijke terugdraaiing door terug te schakelen naar de vorige omgeving. Implementeer met servicelabelkiezers of Istio-verkeersbeheer.

Canarische implementaties

Leid geleidelijk een klein percentage van het verkeer naar de nieuwe versie, waarbij u het percentage verhoogt naarmate het vertrouwen groeit. Tools zoals Flagger en Argo Rollouts automatiseren canarische analyses met op statistieken gebaseerde promotie.

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: my-app
spec:
  replicas: 5
  strategy:
    canary:
      steps:
        - setWeight: 10
        - pause: { duration: 5m }
        - setWeight: 30
        - pause: { duration: 5m }
        - setWeight: 60
        - pause: { duration: 5m }
      canaryService: my-app-canary
      stableService: my-app-stable
      trafficRouting:
        istio:
          virtualService:
            name: my-app-vsvc
            routes:
              - primary

Geautomatiseerde terugdraaiingen

GitOps maakt rollbacks eenvoudig: draai eenvoudigweg de Git-commit terug. Geautomatiseerde terugdraaiingen op basis van gezondheidscontroles bieden echter een extra vangnet.

ArgoCD ondersteunt geautomatiseerde rollbacks via zijn synchronisatie- en gezondheidsbeoordelingssysteem. Als een applicatie na een synchronisatie in een verslechterde staat terechtkomt, kan ArgoCD automatisch teruggaan naar de laatst bekende goede staat.

Voor meer geavanceerde rollback-scenario's kunnen Argo Rollouts en Flagger Prometheus-statistieken analyseren, geautomatiseerde tests uitvoeren en implementaties afbreken die verminderde prestaties aantonen.

Geheimenbeheer met verzegelde geheimen

Het opslaan van geheimen in Git is een cruciale uitdaging voor GitOps. Sealed Secrets lost dit op door geheimen te versleutelen die alleen kunnen worden ontsleuteld door de controller die in het doelcluster draait.

# Install Sealed Secrets controller
helm repo add sealed-secrets https://bitnami-labs.github.io/sealed-secrets
helm install sealed-secrets sealed-secrets/sealed-secrets \
  --namespace kube-system

# Encrypt a secret
kubectl create secret generic db-credentials \
  --from-literal=username=admin \
  --from-literal=password=s3cure-p@ss \
  --dry-run=client -o yaml | \
  kubeseal --format yaml > db-credentials-sealed.yaml

Het resultaat SealedSecret resource kan veilig worden vastgelegd in Git. Alleen de Sealed Secrets-controller in het doelcluster bevat de privésleutel die nodig is om deze te ontsleutelen. Alternatieve benaderingen zijn onder meer External Secrets Operator (voor het ophalen uit AWS Secrets Manager, HashiCorp Vault, enz.) en SOPS voor versleuteling op bestandsniveau.

Implementaties monitoren

Inzicht in de implementatiestatus is essentieel voor productie-GitOps-pijplijnen. Implementeer monitoring op meerdere niveaus:

  • ArgoCD-statistieken - ArgoCD onthult Prometheus-statistieken voor synchronisatiestatus, gezondheid en werkingsduur. Maak Grafana-dashboards om de implementatiefrequentie en foutpercentages bij te houden.
  • Kubernetes-evenementen - Bewaak de planning van pods, het ophalen van afbeeldingen en de gereedheidsonderzoeksgebeurtenissen om problemen vroegtijdig op te sporen.
  • Statuscontroles van applicaties - Configureer aangepaste gezondheidscontroles in ArgoCD met behulp van Lua-scripts om te definiëren wat "gezond" betekent voor uw specifieke bronnen.
  • Waarschuwing - Integreer ArgoCD-meldingen met Slack, PagerDuty of e-mail om te waarschuwen bij synchronisatiefouten, verslechtering van de gezondheid of driftdetectie.
# ArgoCD Notification ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-notifications-cm
  namespace: argocd
data:
  trigger.on-sync-failed: |
    - when: app.status.operationState.phase in ['Error', 'Failed']
      send: [slack-notification]
  template.slack-notification: |
    message: |
      Application {{.app.metadata.name}} sync {{.app.status.operationState.phase}}.
      Revision: {{.app.status.sync.revision}}
  service.slack: |
    token: $slack-token
    channel: deployments

Levering in meerdere clusters

Naarmate organisaties groter worden, wordt implementatie over meerdere clusters noodzakelijk. ArgoCD ondersteunt native multi-clusterbeheer door externe clusters te registreren. Flux bereikt dit via een beheercluster dat werklastclusters opstart.

De ApplicationSet-controller in ArgoCD is bijzonder krachtig voor scenario's met meerdere clusters. Het kan op dynamische wijze applicatiebronnen genereren op basis van clusterlijsten, Git-mappen of pull-request-gebeurtenissen.

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: my-app-set
  namespace: argocd
spec:
  generators:
    - clusters:
        selector:
          matchLabels:
            env: production
  template:
    metadata:
      name: 'my-app-{{name}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/myorg/k8s-manifests.git
        targetRevision: main
        path: 'apps/my-app/overlays/{{metadata.labels.region}}'
      destination:
        server: '{{server}}'
        namespace: my-app

Conclusie

GitOps met ArgoCD of Flux CD biedt een robuuste basis voor continue levering van Kubernetes. Door Git te behandelen als de bron van de waarheid, de afstemming te automatiseren en gebruik te maken van progressieve leveringsstrategieën, kunnen teams met vertrouwen inzetten en snel herstellen van mislukkingen. Begin met een eenvoudige configuratie met één cluster, breng uw Git-repositorystructuur tot stand en adopteer geleidelijk geavanceerde patronen zoals canary-implementaties, multi-clusterbeheer en geautomatiseerd rollback-beleid naarmate uw platform volwassener wordt.

De investering in de GitOps-infrastructuur betaalt zich uit door verbeterde betrouwbaarheid, snellere respons op incidenten, volledige audittrails en een ontwikkelaarservaring die implementaties net zo eenvoudig maakt als het samenvoegen van een pull-verzoek.