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à.
Registra i cluster di destinazione
Registra i cluster per consentire ad Argo CD di distribuire applicazioni su di essi. È possibile registrare lo stesso cluster su cui è in esecuzione Argo CD (cluster locale) o cluster remoti in account o regioni diversi.
Prerequisiti
-
È stato creato un cluster EKS con funzionalità Argo CD
-
kubectlconfigurato per comunicare con il cluster -
Per i cluster remoti: autorizzazioni IAM e voci di accesso appropriate
Registra il cluster locale
Per distribuire le applicazioni nello stesso cluster su cui è in esecuzione Argo CD, registratelo come obiettivo di distribuzione.
Importante
La funzionalità Argo CD non registra automaticamente il cluster locale. È necessario registrarlo in modo esplicito per distribuire le applicazioni nello stesso cluster. È possibile utilizzare il nome del cluster in-cluster per motivi di compatibilità con la maggior parte degli esempi di Argo CD online.
Nota
Un EKS Access Entry viene creato automaticamente per il cluster locale con l'Argo CD Capability Role, ma per impostazione predefinita non vengono concesse autorizzazioni RBAC per Kubernetes. Ciò segue il principio del privilegio minimo: è necessario configurare in modo esplicito le autorizzazioni richieste da Argo CD in base al caso d'uso. Ad esempio, se si utilizza questo cluster solo come hub Argo CD per gestire cluster remoti, non sono necessarie autorizzazioni di distribuzione locale. Per le opzioni di configurazione, consulta la sezione relativa ai requisiti RBAC di Access Entry di seguito.
Utilizzo dell'Argo CD CLI:
argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/my-cluster \ --name local-cluster
Utilizzo di un segreto Kubernetes:
apiVersion: v1 kind: Secret metadata: name: local-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster stringData: name: local-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster project: default
Applica la configurazione:
kubectl apply -f local-cluster.yaml
Nota
Utilizza l'ARN del cluster EKS nel server campo, non l'URL del server API Kubernetes. La funzionalità gestita richiede ARNs l'identificazione dei cluster. L'impostazione predefinita non kubernetes.default.svc è supportata.
Registra cluster remoti
Per eseguire la distribuzione su cluster remoti:
Fase 1: Creare la voce di accesso sul cluster remoto
Sostituisci region-code con la AWS regione in cui si trova il cluster remoto, sostituisci remote-cluster con il nome del cluster remoto e sostituisci l'ARN con il tuo ruolo di funzionalità Argo CD ARN.
aws eks create-access-entry \ --regionregion-code\ --cluster-nameremote-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --type STANDARD
Fase 2: Associare una politica di accesso alle autorizzazioni RBAC di Kubernetes
L'Access Entry richiede le autorizzazioni RBAC di Kubernetes per Argo CD per distribuire le applicazioni. Per iniziare rapidamente, puoi utilizzare: AmazonEKSClusterAdminPolicy
aws eks associate-access-policy \ --regionregion-code\ --cluster-nameremote-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Importante
AmazonEKSClusterAdminPolicyFornisce l'accesso completo all'amministratore del cluster (equivalente asystem:masters). È utile per iniziare, ma non deve essere utilizzato in produzione. Per gli ambienti di produzione, utilizza autorizzazioni più restrittive associando l'Access Entry a gruppi Kubernetes personalizzati e creando ruoli o associazioni appropriati. ClusterRole Consulta la sezione sulla configurazione di produzione di seguito per la configurazione con privilegi minimi.
Fase 3: Registrare il cluster in Argo CD
Utilizzo dell'Argo CD CLI:
argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/remote-cluster \ --name remote-cluster
Utilizzo di un segreto Kubernetes:
apiVersion: v1 kind: Secret metadata: name: remote-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster stringData: name: remote-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/remote-cluster project: default
Applica la configurazione:
kubectl apply -f remote-cluster.yaml
Cluster tra account
Per eseguire la distribuzione su cluster con account diversi: AWS
-
Nell'account di destinazione, creare un Access Entry sul cluster EKS di destinazione utilizzando l'ARN Argo CD IAM Capability Role dall'account di origine come principale
-
Associa una politica di accesso alle autorizzazioni Kubernetes RBAC appropriate
-
Registra il cluster in Argo CD utilizzando il relativo ARN del cluster EKS
Non è richiesta la creazione di ruoli IAM aggiuntivi o la configurazione delle policy di fiducia: EKS Access Entries gestisce l'accesso tra account.
Il formato ARN del cluster include la regione, quindi le distribuzioni interregionali utilizzano lo stesso processo delle distribuzioni nella stessa regione.
Verifica la registrazione del cluster
Visualizza i cluster registrati:
kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=cluster
Oppure controlla lo stato del cluster nell'interfaccia utente di Argo CD in Impostazioni → Cluster.
Cluster privati
La funzionalità Argo CD fornisce un accesso trasparente a cluster EKS completamente privati senza richiedere peering VPC o configurazioni di rete specializzate.
AWS gestisce automaticamente la connettività tra la funzionalità Argo CD e i cluster remoti privati.
È sufficiente registrare il cluster privato utilizzando la relativa ARN: non è richiesta alcuna configurazione di rete aggiuntiva.
Accedi ai requisiti RBAC di ingresso
Quando si crea una funzionalità Argo CD, viene creata automaticamente una voce EKS Access Entry per il ruolo Capability, ma per impostazione predefinita non vengono concesse autorizzazioni RBAC per Kubernetes. Questa progettazione intenzionale segue il principio del privilegio minimo: casi d'uso diversi richiedono autorizzazioni diverse.
Ad esempio: * Se si utilizza il cluster solo come hub Argo CD per gestire cluster remoti, non sono necessarie autorizzazioni di distribuzione locale* Se si distribuiscono applicazioni localmente, è necessario l'accesso in lettura a livello di cluster e l'accesso in scrittura a namespace specifici * Se è necessario creare, sono necessarie autorizzazioni di amministratore del cluster aggiuntive CRDs
È necessario configurare in modo esplicito le autorizzazioni richieste da Argo CD in base alle proprie esigenze.
Autorizzazioni minime per Argo CD
Argo CD necessita di due tipi di autorizzazioni per funzionare senza errori:
Autorizzazioni di lettura (a livello di cluster): Argo CD deve essere in grado di leggere tutti i tipi di risorse e le definizioni di risorse personalizzate (CRDs) in tutto il cluster per:
-
Scoperta delle risorse e controlli dello stato
-
Rilevamento della deriva tra lo stato desiderato e quello effettivo
-
Convalida delle risorse prima della distribuzione
Autorizzazioni di scrittura (specifiche dello spazio dei nomi): Argo CD richiede le autorizzazioni di creazione, aggiornamento ed eliminazione per le risorse definite in Applicazioni:
-
Implementa i carichi di lavoro delle applicazioni (implementazioni, servizi, ecc.) ConfigMaps
-
Applica risorse personalizzate (CRDs specifiche per le tue applicazioni)
-
Gestisci il ciclo di vita delle applicazioni
Configurazione rapida
Per iniziare rapidamente, in ambienti di test o sviluppo, utilizza: AmazonEKSClusterAdminPolicy
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Importante
AmazonEKSClusterAdminPolicyFornisce l'accesso completo all'amministratore del cluster (equivalente asystem:masters), inclusa la possibilità di creare CRDs, modificare risorse a livello di cluster e distribuirle in qualsiasi spazio dei nomi. Questa funzionalità è utile per lo sviluppo, POCs ma non deve essere utilizzata in produzione. Per la produzione, utilizzate la configurazione con privilegi minimi riportata di seguito.
Configurazione di produzione con privilegi minimi
Per gli ambienti di produzione, crea un RBAC Kubernetes personalizzato che garantisca:
-
Accesso in lettura a livello di cluster a tutte le risorse (per il rilevamento e i controlli di integrità)
-
Accesso in scrittura specifico per lo spazio dei nomi (per le distribuzioni)
Fase 1: Associare Access Entry a un gruppo Kubernetes personalizzato
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy \ --access-scope type=namespace,namespaces=app-namespace
Fase 2: ClusterRole Creazione per l'accesso in lettura
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: argocd-read-all rules: # Read access to all resources for discovery and health checks - apiGroups: ["*"] resources: ["*"] verbs: ["get", "list", "watch"]
Fase 3: Creazione di un ruolo per l'accesso in scrittura ai namespace delle applicazioni
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: argocd-deploy namespace: app-namespace rules: # Full access to deploy application resources - apiGroups: ["*"] resources: ["*"] verbs: ["*"]
Fase 4: Associare i ruoli al gruppo Kubernetes
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: argocd-read-all subjects: - kind: Group name: eks-access-entry:arn:aws:iam::111122223333:role/ArgoCDCapabilityRole apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: argocd-read-all apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: argocd-deploy namespace: app-namespace subjects: - kind: Group name: eks-access-entry:arn:aws:iam::111122223333:role/ArgoCDCapabilityRole apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: argocd-deploy apiGroup: rbac.authorization.k8s.io
Nota
Il formato del nome del gruppo per Access Entries è eks-access-entry: seguito dall'ARN principale. Ripetere l'operazione RoleBinding per ogni namespace in cui Argo CD deve distribuire le applicazioni.
Importante
Argo CD deve essere in grado di leggere tutti i tipi di risorse del cluster a fini di verifica e individuazione dello stato, anche se viene distribuito solo su namespace specifici. Senza accesso in lettura a livello di cluster, Argo CD mostrerà errori durante il controllo dello stato delle applicazioni.
Limita l'accesso ai cluster con Projects
Importante
Nella funzionalità gestita, ogni cluster di destinazione può essere associato solo a un progetto Argo CD. Ciò differisce dall'Argo CD open source, in cui più progetti possono essere implementati nello stesso cluster. Specificate il progetto al momento della registrazione del cluster utilizzando il project campo nel segreto del cluster.
Usa Projects per controllare in quali cluster e namespace le applicazioni possono effettuare la distribuzione configurando i cluster e i namespace di destinazione consentiti in: spec.destinations
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: production namespace: argocd spec: destinations: - server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: '*' - server: arn:aws:eks:eu-west-1:111122223333:cluster/prod-eu-cluster namespace: '*' sourceRepos: - 'https://github.com/example/production-apps'
Per informazioni dettagliate, vedi Lavorare con Argo CD Projects.
Risorse aggiuntive
-
Lavorare con Argo CD Projects- Organizza le applicazioni e applica i limiti di sicurezza
-
Crea applicazioni- Implementa la tua prima applicazione
-
Usa ApplicationSets- Esegui la distribuzione su più cluster con ApplicationSets
-
Considerazioni su Argo CD- Modelli multicluster e configurazione tra account
-
Configurazione dichiarativa del cluster - Riferimento alla configurazione del cluster
upstream