Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di applicazioni
Le applicazioni rappresentano distribuzioni nei cluster di destinazione. Ogni applicazione definisce una fonte (repository Git) e una destinazione (cluster e namespace). Una volta applicato, Argo CD creerà le risorse specificate dai manifest nel repository Git nello spazio dei nomi del cluster. Le applicazioni spesso specificano le distribuzioni dei carichi di lavoro, ma possono gestire qualsiasi risorsa Kubernetes disponibile nel cluster di destinazione.
Prerequisiti
-
È stato creato un cluster EKS con funzionalità Argo CD
-
Accesso al repository configurato (vedi) Configurare l'accesso al repository
-
Cluster di destinazione registrato (vediRegistra i cluster di destinazione)
-
kubectlconfigurato per comunicare con il cluster
Crea un'applicazione di base
Definisci un'applicazione che viene distribuita da un repository Git:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook destination: server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster namespace: default
Importante
Utilizza l'ARN del cluster EKS nel destination.server campo, non l'URL del server API Kubernetes. La funzionalità gestita richiede ARNs l'identificazione dei cluster.
Applica l'applicazione:
kubectl apply -f application.yaml
Visualizza lo stato dell'applicazione:
kubectl get application guestbook -n argocd
Configurazione dell'origine
Archivio Git:
spec: source: repoURL: https://github.com/example/my-app targetRevision: main path: kubernetes/manifests
Tag o commit Git specifici:
spec: source: targetRevision: v1.2.0 # or commit SHA
Diagramma di Helm:
spec: source: repoURL: https://github.com/example/helm-charts targetRevision: main path: charts/my-app helm: valueFiles: - values.yaml parameters: - name: image.tag value: v1.2.0
Grafico Helm di ECR:
spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:chart-versionchart:chart-name
Se il Capability Role dispone delle autorizzazioni ECR richieste, il repository viene utilizzato direttamente e non è richiesta alcuna configurazione del repository. Per informazioni dettagliate, vedi Configurare l'accesso al repository.
Repository Git da CodeCommit:
spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-nametargetRevision: main path: kubernetes/manifests
Se il Capability Role dispone delle CodeCommit autorizzazioni richieste, il repository viene utilizzato direttamente e non è richiesta alcuna configurazione del repository. Per informazioni dettagliate, vedi Configurare l'accesso al repository.
Repository Git da CodeConnections:
spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests
Il formato dell'URL del repository è derivato dall'ARN della CodeConnections connessione. Se il Capability Role dispone delle CodeConnections autorizzazioni richieste ed è configurata una connessione, il repository viene utilizzato direttamente e non è richiesta alcuna configurazione del repository. Per informazioni dettagliate, vedi Configurare l'accesso al repository.
Personalizza:
spec: source: repoURL: https://github.com/example/kustomize-app targetRevision: main path: overlays/production kustomize: namePrefix: prod-
Politiche di sincronizzazione
Controlla il modo in cui Argo CD sincronizza le applicazioni.
Sincronizzazione manuale (impostazione predefinita):
Le applicazioni richiedono l'approvazione manuale per la sincronizzazione:
spec: syncPolicy: {} # No automated sync
Attiva manualmente la sincronizzazione:
kubectl patch application guestbook -n argocd \ --type merge \ --patch '{"operation": {"initiatedBy": {"username": "admin"}, "sync": {}}}'
Sincronizzazione automatica:
Le applicazioni si sincronizzano automaticamente quando vengono rilevate modifiche a Git:
spec: syncPolicy: automated: {}
Autoriparazione:
Ripristina automaticamente le modifiche manuali al cluster:
spec: syncPolicy: automated: selfHeal: true
Se abilitato, Argo CD ripristina qualsiasi modifica manuale apportata direttamente al cluster, assicurando che Git rimanga la fonte della verità.
Potatura:
Elimina automaticamente le risorse rimosse da Git:
spec: syncPolicy: automated: prune: true
avvertimento
Il pruning eliminerà le risorse dal cluster. Usare con cautela negli ambienti di produzione.
Sincronizzazione automatica combinata:
spec: syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true
Opzioni di sincronizzazione
Configurazione di sincronizzazione aggiuntiva:
Crea lo spazio dei nomi se non esiste:
spec: syncPolicy: syncOptions: - CreateNamespace=true
Convalida le risorse prima di applicarle:
spec: syncPolicy: syncOptions: - Validate=true
Applica solo non sincronizzato:
spec: syncPolicy: syncOptions: - ApplyOutOfSyncOnly=true
Funzionalità di sincronizzazione avanzate
Argo CD supporta funzionalità di sincronizzazione avanzate per implementazioni complesse:
-
Sync waves: controlla l'ordine di creazione delle risorse con le annotazioni
argocd.argoproj.io/sync-wave -
Sync hooks: esegui i lavori prima o dopo la sincronizzazione con
argocd.argoproj.io/hookle annotazioni (PreSync,,) PostSync SyncFail -
Valutazione dello stato delle risorse: controlli di integrità personalizzati per le risorse specifiche dell'applicazione
Per i dettagli, consultate Sync Waves
Ignora le differenze
Impedisci ad Argo CD di sincronizzare campi specifici gestiti da altri controller (come HPA che gestisce le repliche):
spec: ignoreDifferences: - group: apps kind: Deployment jsonPointers: - /spec/replicas
Per i dettagli sugli schemi di ignoramento e sulle esclusioni dei campi, consultate Diffing
Implementazione multiambiente
Implementa la stessa applicazione in più ambienti:
Sviluppo:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-dev namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: develop path: overlays/development destination: server: arn:aws:eks:us-west-2:111122223333:cluster/dev-cluster namespace: my-app
Produzione:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-prod namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: main path: overlays/production destination: server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: my-app syncPolicy: automated: prune: true selfHeal: true
Monitora e gestisci le applicazioni
Visualizza lo stato dell'applicazione:
kubectl get application my-app -n argocd
Accedi all'interfaccia utente di Argo CD:
Apri l'interfaccia utente di Argo CD tramite la console EKS per visualizzare la topologia dell'applicazione, lo stato di sincronizzazione, lo stato delle risorse e la cronologia di distribuzione. Vedi Lavorare con Argo CD per le istruzioni di accesso all'interfaccia utente.
Applicazioni di rollback:
Torna a una revisione precedente utilizzando l'interfaccia utente di Argo CD o aggiornando le specifiche dell'applicazione targetRevision a un commit o tag Git precedente.
Risorse aggiuntive
-
Lavorare con Argo CD Projects- Organizza le applicazioni con Progetti per ambienti multi-tenant
-
Usa ApplicationSets- Implementa su più cluster con modelli
-
Specifiche dell'applicazione: riferimento
completo all'API dell'applicazione -
Opzioni di sincronizzazione
: configurazione di sincronizzazione avanzata