Gestire i cluster Oracle Cloud Infrastructure Kubernetes Engine in ArgoCD utilizzando l'identità del carico di lavoro
Introduzione
ArgoCD è uno strumento di consegna continua dichiarativa e GitOps per Kubernetes. Al momento della scrittura di questa esercitazione, ArgoCD non dispone delle funzionalità CLI (Command Line Interface) di Oracle Cloud Infrastructure necessarie per generare il token di accesso per Oracle Cloud Infrastructure Kubernetes Engine (OKE), pertanto è necessaria un'immagine ArgoCD personalizzata.
Nota: l'immagine ArgoCD di base utilizzata per l'immagine personalizzata è
quay.io/argoproj/argocd:v3.1.1.
Obiettivi
-
Creare un'immagine ArgoCD personalizzata contenente l'interfaccia CLI OCI.
-
Installare ArgoCD nel cluster OKE avanzato utilizzando l'immagine personalizzata.
-
Aggiungere un cluster OKE alla lista di cluster ArgoCD utilizzando
execProviderConfig. -
Distribuire un'applicazione nel cluster OKE di destinazione da ArgoCD.
Prerequisiti
-
Installare Podman o Docker e l'interfaccia CLI
argocd. -
Cluster avanzato OKE per l'installazione di ArgoCD.
Nota: è possibile utilizzare l'identità del carico di lavoro solo per i cluster avanzati.
-
Cluster OKE da gestire tramite ArgoCD.
-
Token di autenticazione per l'utente OCI (dalla console OCI, andare al profilo utente e fare clic su Token di autenticazione), che può richiedere fino a 5 minuti per l'attivazione.
-
Permesso per l'utente OCI di creare repository in OCI Container Registry.
Allow group <your_group> to manage repos in tenancy -
Autorizzazione per ArgoCD per gestire i cluster OKE.
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' }Nota: questo criterio è troppo aperto, ma è possibile renderlo restrittivo come si desidera.
- Sostituisci nel criterio:
compartment_ocid: deve essere l'OCID del compartimento che contiene i cluster che si desidera gestire con ArgoCD.cluster_ocid: deve essere l'OCID cluster da cui si desidera gestire altri cluster. Quello che ha ArgoCD.
- Sostituisci nel criterio:
Task 1: Invio dell'immagine personalizzata ArgoCD al registro contenitore OCI
Nota: è possibile utilizzare Podman o docker.
-
Creare un
Dockerfilecontenente: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 -
Eseguire il comando seguente all'interno della cartella contenente il 'Dockerfile'.
podman build --platform linux/amd64 -t argocd-oci:01 .Nota: il punto (.) alla fine del comando si riferisce alla directory corrente, in cui si trova il Dockerfile.
-
Eseguire il comando riportato di seguito.
podman tag argocd-oci:01 ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01 -
Eseguire il comando riportato di seguito.
podman login ocir.**your_region**.oci.oraclecloud.com- L'utente è:
- Se si utilizza il dominio di Identity:
your_tenancy_namespace/OracleIdentityCloudService/your_email. - Se si utilizza il dominio predefinito:
your_tenancy_namespace/your_email.
- Se si utilizza il dominio di Identity:
- La password è il token di autenticazione OCI.
- L'utente è:
-
Eseguire il comando riportato di seguito.
podman push ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
Task 2: Installare ArgoCD utilizzando l'immagine personalizzata
-
Scaricare e installare il file manifesto ArgoCD da qui: argo-cd/manifests/install.yaml.
-
Modificare il file per sostituire l'immagine ArgoCD con l'immagine personalizzata.
- Cambiare da immagine:
quay.io/argoproj/argocd - Immagine di destinazione:
ocir.**your_region**.oci.oraclecloud.com/**your_tenancy_namespace**/**your_repository_name**/argocd-oci:01
- Cambiare da immagine:
-
Eseguire il comando seguente per creare lo spazio di nomi
argocd.kubectl create namespace argocd -
Eseguire il comando seguente per distribuire
argocd.kubectl apply -f install.yaml -n argocd
Task 3: aggiungere un cluster alla lista di cluster ArgoCD
-
Avviare ArgoCD.
Nota: è possibile utilizzare un load balancer OCI per esporre ArgoCD. In questo esempio verrà utilizzato
port-forward. Utilizzare un terminale aggiuntivo solo per l'inoltro delle porte.-
Nel secondo terminale, eseguire il comando seguente.
kubectl port-forward service/argocd-server -n argocd 63265:80Nota: non chiudere questo terminale, passare a quello precedente poiché viene utilizzato per mantenere attivo ArgoCD.
-
Ottenere la password dell'amministratore ArgoCD utilizzando il comando seguente.
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d -
Eseguire il login (l'utente è admin, la password è quella del comando precedente) utilizzando il comando seguente.
argocd login 127.0.0.1:63265
-
-
Scaricare e modificare il file denominato
add_cluster.yamlda qui: add_cluster.yaml:Nota: questo esempio utilizza TLS non sicuro e può essere modificato.
cluster_name: nome del cluster che verrà visualizzato nella lista di cluster ArgoCD.cluster_api_endpoint: endpoint del cluster che si desidera aggiungere alla lista di cluster ArgoCD.cluster_ocid: OCID del cluster che si desidera aggiungere alla lista di cluster ArgoCD.region: l'area in cui risiede il cluster.
-
Applicare il file per aggiungere il cluster nella lista di cluster ArgoCD utilizzando il comando seguente.
kubectl apply -f add_cluster.yaml -
Controllare se il cluster è stato aggiunto alla lista di cluster ArgoCD utilizzando il comando seguente.
argocd cluster list
Task 4: eseguire il test distribuendo un'applicazione da ArgoCD al cluster
-
Scaricare e modificare il file denominato
deploy_example.yamlda qui: deploy_example.yaml.cluster_name: nome del cluster che si desidera distribuire l'applicazione.
-
Applicare il file per distribuire un'applicazione semplice al cluster di destinazione utilizzando il comando seguente.
kubectl apply -f deploy-example.yaml -
Controllare che l'applicazione sia stata distribuita correttamente utilizzando i seguenti comandi.
argocd app list argocd app sync guestbook
Conferme
- Autore - Gabriel Feodorov (ingegnere senior cloud)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Manage Oracle Cloud Infrastructure Kubernetes Engine Clusters in Argo CD using Workload Identity
G36152-02