GitOps-basiertes CI/CD auf Kubernetes: Eine Anleitung
Die Automatisierung von Continuous Integration (CI) und Continuous Deployment (CD) auf Kubernetes mit einem GitOps-Ansatz bietet eine effiziente Möglichkeit, Anwendungen zu entwickeln, zu testen und bereitzustellen. In diesem Blogbeitrag werden wir die Verwendung von CircleCI für die kontinuierliche Integration und Argo CD für die kontinuierliche Bereitstellung auf einem Kubernetes-Cluster demonstrieren.
Schritt 1: Einrichtung von CircleCI
CircleCI ermöglicht die Automatisierung von Builds und Tests in Kubernetes. Durch die Konfiguration eines Workflow in einer YAML-Datei definieren wir die Schritte für CircleCI. Dies umfasst das Ausführen von Tests, das Erstellen von Docker-Images und das Pushen dieser Images in ein Container-Repository wie Docker Hub.
version: 2
jobs:
test:
docker:
– image: circleci/python:3.8
steps:
– checkout
– run: pytest
build:
docker:
– image: docker:19.03.12
steps:
– checkout
– setup_remote_docker
– run: docker build -t myapp:latest .
push:
docker:
– image: docker:19.03.12
steps:
– setup_remote_docker
– run: echo „$DOCKER_PASSWORD“ | docker login -u „$DOCKER_USERNAME“ –password-stdin
– run: docker push myapp:latest
workflows:
version: 2
build-deploy:
jobs:
– test
– build:
requires:
– test
– push:
requires:
– build
Schritt 2: Installation und Konfiguration von Argo CD
Argo CD verwaltet die kontinuierliche Bereitstellung auf Kubernetes. Nach der Installation verbinden wir Argo CD mit GitHub und konfigurieren die Anwendung für die Bereitstellung. Dies beinhaltet das Einrichten von Zugriffsrechten, das Hinzufügen von Clustern und das Konfigurieren von Anwendungen für die automatische Synchronisation.
# Installation von Argo CD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.1.4/manifests/install.yaml
# Verbindung mit GitHub
argocd login localhost:8080
argocd account update-password
argocd cluster add minikube
Schritt 3: Verknüpfung von Argo CD mit GitHub und manuelles Deploy
Argo CD synchronisiert Bereitstellungen mit einem GitHub-Repository. Durch die Verbindung mit GitHub und Konfiguration der Anwendung können wir die Bereitstellung automatisieren. Wir stellen auch die Möglichkeit vor, manuell eine Synchronisation der Anwendung mit dem Repository auszulösen. Dies bietet Flexibilität und Kontrolle über den Bereitstellungsprozess.
Schritt 4: Testen des Continuous Deployment Setups
Nachdem die Konfiguration abgeschlossen ist, testen wir das Continuous Deployment System, indem wir eine Änderung im Projekt vornehmen und einen neuen Build der Anwendung auslösen. Wir beobachten, wie Argo CD die Änderungen erkennt und automatisch die Anwendung auf dem Kubernetes-Cluster aktualisiert.
Fazit
Mit CircleCI für die kontinuierliche Integration und Argo CD für die kontinuierliche Bereitstellung haben wir ein leistungsstarkes Toolset für die Automatisierung von Kubernetes-Workflows. Durch die Verwendung eines GitOps-Ansatzes organisieren wir unsere CI/CD-Prozesse um Git herum, was eine effiziente und konsistente Entwicklung ermöglicht.
Mit diesem Tutorial haben Sie eine grundlegende Pipeline für die Entwicklung, Tests und Bereitstellung von Anwendungen auf Kubernetes erstellt. Sie können diese Tools verwenden, um Ihr eigenes GitOps CI/CD-System zu entwickeln und weiter anzupassen. Für weitere Informationen über Git und DevOps-Tools empfehlen wir unsere anderen Tutorials und Ressourcen. GitOps-basiertes CI/CD auf Kubernetes: Eine Anleitung