Getty Images/iStockphoto

Starten Sie mit Argo-CD-Workflow-Beispielen für Kubernetes

Argo CD Workflows können die Verwaltung von Kubernetes-Clustern einfacher und effizienter machen. Erfahren Sie, wie Sie Argo CD installieren und eine Anwendung einrichten.

Die Verwaltung der Kubernetes-Infrastruktur kann komplex und zeitaufwendig sein. Argo CD bietet eine Option für Entwickler, die eine einfache Kubernetes-Wartung wünschen.

Entwickler haben viele Projekte erstellt, um die Wartung und Ausführung von Anwendungen auf Kubernetes zu unterstützen. Argo CD ist ein beliebtes Tool, da es Anwendungen in einem deklarativen Zustand ausdrückt. Argo CD überwacht diese Anwendungen ständig und gleicht sie ab, indem es den Zustand der Anwendung in Kubernetes mit dem deklarierten Zustand aus der Versionskontrolle vergleicht. Entwickler können Argo CD Workflows auf Kubernetes leicht einrichten – es sind nur ein paar Befehle erforderlich.

Was ist Argo CD?

Das Softwareunternehmen Intuit hat Argo CD als Voraussetzung für die Einführung von Kubernetes entwickelt. Anstatt Entwicklern direkten Zugang zu Kubernetes zu geben, bietet Argo CD eine Reihe von Tools und eine Umgebung, in der Entwickler mit Kubernetes arbeiten, ohne Kubernetes-Experten sein zu müssen.

Nachdem Intuit als internes Tool erfolgreich war, hat es Argo CD 2018 als Open Source zur Verfügung gestellt, um anderen die Möglichkeit zu geben, es zu nutzen und zu verbessern, was Intuit nicht konnte. Argo CD ist kostenlos und lässt sich schnell einrichten. Es erfordert nur einen Kubernetes-Cluster, auf dem CoreDNS läuft.

Sie implementieren Argo CD als Kubernetes-Controller, das heißt als eine Art Kubernetes-Ressource, die ständig läuft, um andere Ressourcen entsprechend einem angeforderten Zustand zu überwachen und zu ändern. Im Fall von Argo CD interagiert der Controller mit dem Cluster-API-Server, um Ressourcen zu erstellen und zu ändern. Argo CD bietet eine visuelle Darstellung der bereitgestellten Ressourcen, die als Code in einem Git Repository vorliegen. Wenn Sie Aktualisierungen an den Ressourcen im Git Repository vornehmen, nimmt Argo CD Aktualisierungen an den Live-Ressourcen im Kubernetes-Cluster vor, um sie an den Zielzustand anzupassen.

Argo CD wurde in Übereinstimmung mit einer Reihe von DevOps-Praktiken entwickelt, die GitOps genannt werden, wobei ein Git Repository eine Single Source of Truth für den Zustand einer Anwendung aufrechterhält. Die Speicherung aller Änderungen an der Infrastrukturkonfiguration in einem Git Repository macht es einfach, Änderungen an der konfigurierten Infrastruktur zu erstellen, zu beobachten und rückgängig zu machen. Als Ergänzung zu GitOps nimmt Argo CD Änderungen im Git Repository auf und setzt sie auf zuverlässige und debuggierbare Weise um.

Argo CD hält die Ressourcen in einem Cluster mit den in einem Git Repository definierten Ressourcen auf dem neuesten Stand, aber Ihre Ressourcen sollten bereits im Code und in der Versionskontrolle gespeichert sein. Das Hinzufügen von Argo CD reduziert dann den Konfigurationsaufwand, der für die Aufrechterhaltung des Status dieser Ressourcen in einem Cluster erforderlich ist.

Einsatz von Argo CD auf Kubernetes

In der Praxis läuft Argo CD auf demselben Kubernetes-Cluster wie Ihre Anwendung oder auf einem eigenen Cluster. Im Folgenden wird beschrieben, wie Sie Argo CD und eine Demo-Anwendung auf demselben Cluster einrichten. Um Argo CD auf dem Cluster einzusetzen, führen Sie zunächst die folgenden kubectl-Befehle aus:

kubectl create namespace argocd

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

Der erste Befehl erstellt einen Namespace im Cluster namens argocd, den der nächste Befehl verwendet, um die Argo-CD-Ressourcen aus einer YAML-Datei zu installieren, die sich im Repository des Argo-CD-Projekts befindet. Nachdem Argo CD installiert ist, interagieren Sie mit ihm, indem Sie die Benutzeroberfläche besuchen oder die Argo CD CLI verwenden. Das CLI-Tool ist ein beliebter Weg, um mit Argo CD zu interagieren, weil Sie die gleichen Befehle in Ihrer CI/CD-Pipeline verwenden können. Installieren Sie die Argo CD CLI mit dem folgenden Befehl:

brew install argocd

Um zu überprüfen, ob alles funktioniert, melden Sie sich bei Argo CD ein. Führen Sie die folgenden zwei Befehle aus, um den Argo CD Server zu erreichen und sich einzuloggen:

kubectl patch svc argocd-server -n argocd -p \
'{"spec": {"type": "LoadBalancer"}}'

kubectl port-forward svc/argocd-server -n argocd 8080:443

Mit dem ersten Befehl wird der argocd-Server-Dienst vom Typ ClusterIP auf den Typ LoadBalancer geändert. Der nächste Befehl leitet diesen Dienst an localhost auf Port 8080 weiter. Wenn Sie nun https://localhost:8080/ besuchen, gelangen Sie zu Argo CD, wo Sie sich einloggen können. Um das Passwort für die Anmeldung zu erhalten, führen Sie den folgenden Befehl aus:

argocd admin initial-password -n argocd

Benutzen Sie den Benutzernamen admin und das Passwort aus dem Ergebnis des obigen Befehls und melden Sie sich bei Argo CD an. Wenn alles richtig funktioniert, sollten Sie den Bildschirm in Abbildung 1 sehen:

Die Benutzeroberfläche von Argo CD
Abbildung 1: So sieht die Benutzeroberfläche von Argo CD aus.

Eine Anwendung mit Argo CD installieren

Im Folgenden wird beschrieben, wie Sie eine Anwendung mit der Argo CD CLI installieren. Führen Sie den folgenden Befehl aus, um Argo CD CLI gegenüber dem Argo-CD-Server zu authentifizieren:

argocd login localhost:8080

Nachdem Sie sich eingeloggt haben und die CLI bei Argo CD authentifiziert haben, führen Sie die nächsten beiden Befehle aus, um den aktuellen kubectl-Kontext auf den argocd-Namespace zu setzen und eine neue Anwendung in Argo CD zu erstellen:

kubectl config set-context --current --namespace=argocd

argocd app create guestbook –repo https://github.com/argoproj/argocd-example-apps.git \ --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default

Um die Anwendung in diesem Beispiel zu erstellen, benötigt der Befehl argocd ein Git Repository und einen Pfad, in dem die YAML-Dateien mit den Kubernetes-Ressourcendefinitionen vorhanden sind. Argo CD liest die YAML-Dateien und zeigt die zu erstellenden Ressourcen in der Benutzeroberfläche an.

Start einer neuen Anwendung
Abbildung 2: Starten Sie eine neue Anwendung in Argo CD.

Wenn Sie in der Benutzeroberfläche auf SYNC klicken oder den Befehl argocd app sync guestbook ausführen, werden die Änderungen auf den Cluster angewendet, um die angegebenen Ressourcen zu erstellen. Der resultierende Zustand sollte wie in Abbildung 3 aussehen:

Anzeige bestimmter Ressourcen
Abbildung 3: Die Benutzeroberfläche von Argo CD zeigt bestimmte Ressourcen.

Um die Gästebuchanwendung zu erreichen, leiten Sie einen Port des Dienstes mit dem folgenden Befehl an Ihren lokalen Rechner weiter:

kubectl port-forward svc/guestbook-ui -n default 8081:80

Der Gästebuchdienst ist nun unter http://localhost:8081/ erreichbar.

Erfahren Sie mehr über Containervirtualisierung