Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. In der Übung ersetzen Sie diese Werte durch die Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Verwalten von Oracle Cloud Infrastructure Kubernetes Engine-Clustern in Argo-CD mit Workload Identity
Einführung
Argo CD ist ein deklaratives, GitOps Continuous Delivery-Tool für Kubernetes. Zum Zeitpunkt des Schreibens dieses Tutorials verfügt Argo CD über keine Oracle Cloud Infrastructure Command Line Interface-(OCI-CLI-)Funktionen, die zum Generieren des Zugriffstokens für Oracle Cloud Infrastructure Kubernetes Engine (OKE) erforderlich sind. Daher ist ein benutzerdefiniertes Argo-CD-Image erforderlich.
Hinweis: Das Basisabbild der Argo-CD, das für das benutzerdefinierte Abbild verwendet wurde, ist
quay.io/argoproj/argocd:v2.14.9
.
Ziele
-
Erstellen Sie ein benutzerdefiniertes Argo-CD-Image mit OCI-CLI.
-
Installieren Sie die Argo-CD auf einem erweiterten OKE-Cluster mit einem benutzerdefinierten Image.
-
Fügen Sie ein einfaches OKE-Cluster mit
execProviderConfig
zur Argo-CD-Clusterliste hinzu. -
Stellen Sie eine App auf dem Basiscluster von Argo CD bereit.
Voraussetzungen
-
Installieren Sie Podman oder Docker und die CLI
argocd
. -
OKE erweitertes Cluster zur Installation von Argo CD.
Hinweis: Sie können die Workload-Identität nur für erweiterte Cluster verwenden.
-
OKE-Cluster wird von Argo CD verwaltet.
-
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 Argo CD zur Verwaltung 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.
- Ersetzungen in der Policy:
compartment_ocid
: Dies sollte die Compartment-OCID sein, die die Cluster enthält, die Sie mit der Argo-CD verwalten möchten.cluster_ocid
: Dies muss die Cluster-OCID sein, von der aus Sie andere Cluster verwalten möchten. Der, der Argo CD hat.request.principal.namespace
: Dies ist der Namespace, in dem die Argo-CD bereitgestellt wird.request.principal.service_account
: Dies ist der Serviceaccount für den Argo CD-Anwendungscontroller (den Account, der für die Clusterauthentifizierung zuständig ist).
- Ersetzungen in der Policy:
Aufgabe 1: Benutzerdefiniertes Image der Argo-CD in OCI Container Registry übertragen
Hinweis: Sie können Podman oder Dockingstation verwenden.
-
Laden Sie die Datei
Dockerfile
hier herunter:Dockerfile
. -
Führen Sie den folgenden Befehl aus.
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: Installieren der Argo-CD mit dem benutzerdefinierten Abbild
Hinweis: Aktualisieren Sie nur das Image für
argocd-application-controller
, da dies für die Clusterauthentifizierung verantwortlich ist.
-
Laden Sie das Argo CD-Manifest hier herunter, und installieren Sie es: argo-CD/manifests/install.yaml.
-
Bearbeiten Sie die Datei, um das Image für
argocd-application-controller
zu ändern.- Änderung von Bild:
quay.io/argoproj/argocd:latest
- 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
argocd
bereitzustellen.kubectl apply -f install.yaml -n argocd
Aufgabe 3: Cluster zur Argo-CD-Clusterliste hinzufügen
-
Starten Sie Argo CD.
Hinweis: Sie können einen OCI Load Balancer verwenden, um die Argo-CD bereitzustellen. In diesem Beispiel wird stattdessen
port-forward
verwendet. Dazu benötigen 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:80
Hinweis: Schließen Sie dieses Terminal nicht. Wechseln Sie zum vorherigen Terminal, da dies verwendet wird, um die Argo-CD hochzuhalten.
-
Holen Sie sich das Argo CD Admin Passwort mit dem folgenden Befehl.
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.yaml
herunter, 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 Argo-CD-Clusterliste angezeigt wird.cluster_api_endpoint
: Der Endpunkt des Clusters, das Sie der Argo-CD-Clusterliste hinzufügen möchten.cluster_ocid
: Die OCID des Clusters, das Sie der Argo-CD-Clusterliste 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 Argo-CD-Clusterliste hinzuzufügen.
kubectl apply -f add_cluster.yaml
-
Prüfen Sie mit dem folgenden Befehl, ob das Cluster zur Argo-CD-Clusterliste hinzugefügt wurde.
argocd cluster list
Aufgabe 4: Testen, indem Sie eine App von der Argo-CD im Cluster bereitstellen
-
Laden Sie die Datei
deploy_example.yaml
herunter, 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-01
Copyright ©2025, Oracle and/or its affiliates.