

 **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
<a name="argocd-register-clusters"></a>

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. Una volta registrato, un cluster rimarrà in uno stato di connessione sconosciuto fino a quando non si crea un'applicazione all'interno di quel cluster. Per creare un'applicazione Argo CD dopo la registrazione del cluster, consulta[Crea applicazioni](argocd-create-application.md).

## Prerequisiti
<a name="_prerequisites"></a>
+ È stato creato un cluster EKS con funzionalità Argo CD
+  `kubectl`configurato per comunicare con il cluster
+ Per i cluster remoti: autorizzazioni IAM e voci di accesso appropriate

## Registra il cluster locale
<a name="_register_the_local_cluster"></a>

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
<a name="_register_remote_clusters"></a>

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 \
  --region region-code \
  --cluster-name remote-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 \
  --region region-code \
  --cluster-name remote-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**  
`AmazonEKSClusterAdminPolicy`Fornisce l'accesso completo all'amministratore del cluster (equivalente a`system: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
<a name="_cross_account_clusters"></a>

Per eseguire la distribuzione su cluster con account diversi: AWS 

1. 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

1. Associa una politica di accesso alle autorizzazioni Kubernetes RBAC appropriate

1. 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
<a name="_verify_cluster_registration"></a>

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
<a name="_private_clusters"></a>

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
<a name="_access_entry_rbac_requirements"></a>

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: \$1 Se si utilizza il cluster solo come hub Argo CD per gestire cluster remoti, non sono necessarie autorizzazioni di distribuzione locale\$1 Se si distribuiscono applicazioni localmente, è necessario l'accesso in lettura a livello di cluster e l'accesso in scrittura a namespace specifici \$1 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
<a name="_minimum_permissions_for_argo_cd"></a>

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
<a name="_quick_setup"></a>

Per iniziare rapidamente, in ambienti di test o sviluppo, utilizza: `AmazonEKSClusterAdminPolicy`

```
aws eks associate-access-policy \
  --region region-code \
  --cluster-name my-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**  
`AmazonEKSClusterAdminPolicy`Fornisce l'accesso completo all'amministratore del cluster (equivalente a`system: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
<a name="_production_setup_with_least_privilege"></a>

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 \
  --region region-code \
  --cluster-name my-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
<a name="_restrict_cluster_access_with_projects"></a>

Usa Projects per controllare in quali cluster e namespace le applicazioni possono essere distribuite 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](argocd-projects.md).

## Risorse aggiuntive
<a name="_additional_resources"></a>
+  [Lavorare con Argo CD Projects](argocd-projects.md)- Organizza le applicazioni e applica i limiti di sicurezza
+  [Crea applicazioni](argocd-create-application.md)- Implementa la tua prima applicazione
+  [Usa ApplicationSets](argocd-applicationsets.md)- Esegui la distribuzione su più cluster con ApplicationSets
+  [Considerazioni su Argo CD](argocd-considerations.md)- Modelli multi-cluster e configurazione tra più account
+  [Configurazione dichiarativa del cluster - Riferimento alla configurazione del cluster](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters) upstream