Das Bereitstellen von Anwendungen in Kubernetes kann komplex sein, insbesondere für Neulinge. Argo CD ist ein GitOps-gesteuertes, deklaratives Tool, das entwickelt wurde, um Kubernetes-Anwendungsbereitstellungen zu automatisieren. In diesem Workshop lernen Sie, wie Sie Argo CD einrichten und nutzen, um Anwendungen nahtlos bereitzustellen, mit einem Schritt-für-Schritt-Leitfaden für komplette Anfänger.
Was Sie lernen werden
- Installation und Konfiguration von Argo CD.
- Bereitstellen von Anwendungen unter Verwendung von GitOps-Prinzipien.
- Überwachung von Bereitstellungen und Fehlerbehebung.
- Rollback und Verwalten von Anwendungsversionen.
- Absichern von Argo CD für den Produktiveinsatz.
Warum Argo CD?
Argo CD vereinfacht das Anwendungsmanagement in Kubernetes, indem es Ihren Cluster kontinuierlich mit in Git-Repositories definierten Manifesten synchronisiert. Vorteile sind:
- Deklaratives Management: Definieren Sie den gewünschten Clusterzustand in Git.
- Continuous Delivery: Automatisieren Sie Bereitstellungen mit Echtzeitsynchronisierung.
- Version Control: Rollback zu früheren Versionen mit Leichtigkeit.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Einen Kubernetes-Cluster (verwenden Sie Minikube, Kind oder einen verwalteten Dienst wie GKE, EKS, AKS).
kubectl
installiert und konfiguriert, um eine Verbindung zu Ihrem Cluster herzustellen.- Ein GitHub- oder GitLab-Konto zum Hosten Ihrer Kubernetes-Manifeste.
- Grundlegende Vertrautheit mit der YAML-Syntax (wird in diesem Workshop behandelt, wenn Sie neu sind).
Schritt-für-Schritt-Anleitung
1. Einrichten eines Kubernetes-Clusters
Schritt 1: Minikube installieren
Wenn Sie keinen Cluster haben, verwenden Sie Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
Schritt 2: Minikube starten
Führen Sie den Befehl minikube start
nach der Installation von Minikube auf Ihrem System aus:
minikube start
Schritt 3: Cluster überprüfen
Bestätigen Sie, dass der Cluster läuft:
kubectl cluster-info
kubectl get nodes
2. Argo CD installieren
Schritt 1: Namespace erstellen
Argo CD läuft in seinem eigenen Namespace zur Isolierung:
kubectl create namespace argocd
Schritt 2: Argo CD installieren
Wenden Sie die offiziellen Manifeste an, um Argo CD zu installieren:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Schritt 3: Installation überprüfen
Überprüfen Sie die Argo CD-Pods:
kubectl get pods -n argocd
3. Zugriff auf die Argo CD-Benutzeroberfläche
Schritt 1: Argo CD freigeben
Den argocd-server
auf Ihren lokalen Computer freigeben:
kubectl port-forward svc/argocd-server -n argocd 8080:443
Schritt 2: Admin-Anmeldeinformationen abrufen
Holen Sie das Standard-Admin-Passwort ab:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
Schritt 3: Anmeldung bei der Benutzeroberfläche
- Öffnen Sie https://localhost:8080 in Ihrem Browser.
- Melden Sie sich an mit:
- Benutzername: admin
- Passwort: Im vorherigen Schritt abgerufen.
4. Verbindung von Argo CD mit Ihrem Git-Repository
Schritt 1: Ein Git-Repository vorbereiten
- Erstellen Sie ein Git-Repository (z.B. auf GitHub).
- Fügen Sie Ihre Kubernetes-Manifeste dem Repository hinzu. Verwenden Sie dieses Beispiels-
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
Schritt 2: Repository zu Argo CD hinzufügen
Vom UI aus:
- Navigieren Sie zu Einstellungen > Repositories.
- Fügen Sie die URL Ihres Git-Repository und die Authentifizierungsdetails hinzu (SSH oder HTTPS).
Oder verwenden Sie die Befehlszeile:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. Bereitstellung Ihrer ersten Anwendung
Schritt 1: Eine Anwendung erstellen
In der Argo CD-Benutzeroberfläche:
- Klicken Sie auf Neue App.
-
- App Name: nginx-app
- Project: default
- Repository URL: Ihre Git-Repo-URL
- Path: Pfad zu
deployment.yaml
- Cluster URL:
https://kubernetes.default.svc
- Namespace: default
Step 2: Die Anwendung synchronisieren
Nachdem Sie die App erstellt haben:
- Klicken Sie in der Argo CD-Benutzeroberfläche auf Synchronisieren.
- Beobachten Sie, wie die App auf Ihrem Kubernetes-Cluster bereitgestellt wird.
6. Automatisierung von Bereitstellungen
Schritt 1: Auto-Sync aktivieren
Aktivieren Sie kontinuierliche Synchronisierung:
argocd app set nginx-app --sync-policy automated
Schritt 2: Änderungen testen
- Ändern Sie die
deployment.yaml
in Git. - Pushen Sie die Änderungen ins Repository.
- Argo CD erkennt die Änderungen und synchronisiert sie automatisch mit dem Cluster.
7. Überwachung und Fehlerbehebung
Schritt 1: Überwachen der Anwendungsintegrität
In der Benutzeroberfläche überprüfen:
- Gesundheit: Zeigt an, ob die Anwendung wie erwartet läuft.
- Sync-Status: Stellt sicher, dass der Clusterstatus mit Git übereinstimmt.
Schritt 2: Protokolle anzeigen
Wenn etwas schief geht:
kubectl logs -n argocd <POD_NAME>
Schritt 3: Änderungen rückgängig machen
Zurückkehren zu einem früheren Zustand:
argocd app rollback nginx-app <REVISION>
8. Absicherung von Argo CD
Schritt 1: Standardadministratorpasswort ändern
Ändern Sie das Standardadministratorpasswort mit dem Befehl argocd account update-password
:
argocd account update-password
Schritt 2: SSO integrieren
Für Produktionsumgebungen integrieren Sie sich mit Single Sign-On (SSO)-Lösungen wie GitHub oder LDAP.
Best Practices für GitOps
- Zweigstrategien: Verwenden Sie separate Branches für Entwicklung, Staging und Produktion.
- Code-Reviews: Erzwingen Sie Peer-Reviews für Manifeständerungen.
- Audit-Protokolle: Überprüfen Sie regelmäßig die Argo CD-Protokolle auf Konformität und Debugging.
Fazit
Argo CD bietet einen benutzerfreundlichen, aber leistungsstarken Weg zur Verwaltung von Kubernetes-Bereitstellungen unter Verwendung von GitOps-Prinzipien. Dieses Workshop vermittelt Ihnen die Fähigkeiten, Anwendungen effizient bereitzustellen, zu überwachen und zu verwalten. Durch die Einhaltung dieser Praktiken sind Sie auf dem besten Weg, Kubernetes Continuous Delivery zu beherrschen.
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd