Oracle Cloud Infrastructure Kubernetes Engine-Cluster in ArgoCD mit Workload Identity verwalten
Einführung
ArgoCD ist ein deklaratives Continuous Delivery-Tool GitOps für Kubernetes. Zum Zeitpunkt des Schreibens dieses Tutorials verfügt ArgoCD über keine Oracle Cloud Infrastructure-Befehlszeilenschnittstelle-(OCI-CLI-)Funktionen, die zum Generieren des Zugriffstokens für Oracle Cloud Infrastructure Kubernetes Engine (OKE) erforderlich sind. Daher ist ein benutzerdefiniertes ArgoCD-Image erforderlich.
Hinweis: Das Basisimage ArgoCD, das für das benutzerdefinierte Image verwendet wurde, lautet
quay.io/argoproj/argocd:v3.1.1.
Ziele
-
Erstellen Sie ein benutzerdefiniertes ArgoCD-Image mit der OCI-CLI.
-
Installieren Sie ArgoCD mit dem benutzerdefinierten Image im erweiterten OKE-Cluster.
-
Fügen Sie ein OKE-Cluster mit
execProviderConfigzur Clusterliste ArgoCD hinzu. -
Stellen Sie eine App im OKE-Zielcluster aus ArgoCD bereit.
Voraussetzungen
-
Installieren Sie Podman oder Docker und die CLI
argocd. -
OKE erweitertes Cluster zur Installation von ArgoCD.
Hinweis: Sie können die Workload-Identität nur für erweiterte Cluster verwenden.
-
OKE-Cluster, das von ArgoCD verwaltet wird.
-
Authentifizierungstoken für Ihren OCI-Benutzer (gehen Sie in der OCI-Konsole zu Ihrem Benutzerprofil, und klicken Sie auf Authentifizierungstoken). Die Aktivierung kann bis zu 5 Minuten dauern.
-
Berechtigung für Ihren OCI-Benutzer zum Erstellen von Repositorys in OCI Container Registry.
Allow group <your_group> to manage repos in tenancy -
Berechtigung für ArgoCD zum Verwalten von OKE-Clustern.
allow any-user to manage all-resources in compartment <compartment_ocid> where all { request.principal.type='workload', request.principal.cluster_id = '<cluster_ocid>', request.principal.namespace = 'argocd', request.principal.service_account = 'argocd-application-controller' }Hinweis: Diese Policy ist zu offen, Sie können sie jedoch beliebig einschränken.
- In der Richtlinie ersetzen:
compartment_ocid: Dies muss die Compartment-OCID sein, die die Cluster enthält, die Sie mit ArgoCD verwalten möchten.cluster_ocid: Dies muss die Cluster-OCID sein, von der aus Sie andere Cluster verwalten möchten. Diejenige, die ArgoCD hat.
- In der Richtlinie ersetzen:
Aufgabe 1: Benutzerdefiniertes Image ArgoCD in OCI Container Registry übertragen
Hinweis: Sie können Podman oder docker verwenden.
-
Erstellen Sie eine
Dockerfile, die Folgendes enthält:FROM quay.io/argoproj/argocd:v3.1.1 USER root RUN apt-get update; \ apt-get install -y --no-install-recommends python3-venv; \ python3 -m venv /opt/oci; \ /opt/oci/bin/pip install --no-cache-dir --upgrade pip; \ /opt/oci/bin/pip install --no-cache-dir "oci-cli==3.65.0"; \ ln -s /opt/oci/bin/oci /usr/local/bin/oci; \ apt-get clean; \ rm -rf /var/lib/apt/lists/* USER 999 -
Führen Sie den folgenden Befehl im Ordner aus, der die "Dockerfile" enthält.
podman build --platform linux/amd64 -t argocd-oci:01 .Hinweis: Der Punkt (.) am Ende des Befehls gilt für das aktuelle Verzeichnis, in dem sich die Dockerfile befindet.
-
Führen Sie den folgenden Befehl aus.
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01 -
Führen Sie den folgenden Befehl aus.
podman login ocir.**your_region**.oci.oraclecloud.com- Benutzer ist:
- Wenn Identitätsdomain verwendet wird:
your_tenancy_namespace/OracleIdentityCloudService/your_email. - Wenn die Standarddomain verwendet wird:
your_tenancy_namespace/your_email.
- Wenn Identitätsdomain verwendet wird:
- Das Kennwort ist Ihr OCI-Authentifizierungstoken.
- Benutzer ist:
-
Führen Sie den folgenden Befehl aus.
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
Aufgabe 2: ArgoCD mit dem benutzerdefinierten Image installieren
-
Laden Sie das ArgoCD-Manifest hier herunter, und installieren Sie es: argo-cd/manifests/install.yaml.
-
Bearbeiten Sie die Datei, um das ArgoCD-Image durch das benutzerdefinierte Image zu ersetzen.
- Änderung von Bild:
quay.io/argoproj/argocd - Zum Bild:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- Änderung von Bild:
-
Führen Sie den folgenden Befehl aus, um den
argocd-Namespace zu erstellen.kubectl create namespace argocd -
Führen Sie den folgenden Befehl aus, um
argocdbereitzustellen.kubectl apply -f install.yaml -n argocd
Aufgabe 3: Cluster zur Clusterliste ArgoCD hinzufügen
-
Starten Sie ArgoCD.
Hinweis: Sie können einen OCI Load Balancer verwenden, um ArgoCD anzugeben. In diesem Beispiel wird stattdessen
port-forwardverwendet. Verwenden Sie ein zusätzliches Terminal nur für die Portweiterleitung.-
Führen Sie im zweiten Terminal den folgenden Befehl aus.
kubectl port-forward service/argocd-server -n argocd 63265:80Hinweis: Schließen Sie dieses Terminal nicht. Wechseln Sie zum vorherigen Terminal, da dies verwendet wird, um ArgoCD hochzuhalten.
-
Rufen Sie das ArgoCD-Admin-Kennwort mit dem folgenden Befehl ab.
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
Melden Sie sich mit dem folgenden Befehl an (Benutzer ist admin, Kennwort ist das Kennwort des vorherigen Befehls).
argocd login 127.0.0.1:63265
-
-
Laden Sie die Datei
add_cluster.yamlherunter, und bearbeiten Sie sie hier: add_cluster.yaml:Hinweis: In diesem Beispiel wird unsicheres TLS verwendet. Es kann geändert werden.
cluster_name: Name des Clusters, das in der Clusterliste ArgoCD angezeigt wird.cluster_api_endpoint: Der Endpunkt des Clusters, das Sie der Clusterliste ArgoCD hinzufügen möchten.cluster_ocid: Die OCID des Clusters, das Sie der Clusterliste ArgoCD hinzufügen möchten.region: Die Region, in der sich das Cluster befindet.
-
Wenden Sie die Datei an, um das Cluster mit dem folgenden Befehl in der Clusterliste ArgoCD hinzuzufügen.
kubectl apply -f add_cluster.yaml -
Prüfen Sie mit dem folgenden Befehl, ob das Cluster der Clusterliste ArgoCD hinzugefügt wurde.
argocd cluster list
Aufgabe 4: Testen, indem Sie eine App aus ArgoCD im Cluster bereitstellen
-
Laden Sie die Datei
deploy_example.yamlherunter, und bearbeiten Sie sie hier: deploy_example.yaml.cluster_name: Name des Clusters, das Sie die Anwendung bereitstellen möchten.
-
Wenden Sie die Datei mit dem folgenden Befehl an, um eine einfache App für das Zielcluster bereitzustellen.
kubectl apply -f deploy-example.yaml -
Prüfen Sie mit den folgenden Befehlen, ob die App erfolgreich bereitgestellt wurde.
argocd app list argocd app sync guestbook
Bestätigungen
- Autor - Gabriel Feodorov (Senior Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36148-02