

 **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 su che si trova 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à.

# Risoluzione dei problemi relativi alle funzionalità EKS
<a name="capabilities-troubleshooting"></a>

**Nota**  
Le funzionalità EKS sono completamente gestite ed eseguite all'esterno del cluster. Non hai accesso diretto ai namespace dei controller. La risoluzione dei problemi si concentra sullo stato delle funzionalità, sullo stato delle risorse, sulla configurazione e sui log dei controller. È possibile configurare la distribuzione dei log del controller per ottenere visibilità sul comportamento del controller. Consulta [Accedi ai registri del controller EKS Capabilities](capabilities-controller-logs.md).

## Approccio generale alla risoluzione dei problemi
<a name="_general_troubleshooting_approach"></a>

Per la risoluzione dei problemi di EKS Capabilities, seguite questo approccio generale:

1.  **Verifica dello stato delle funzionalità**: utilizzalo `aws eks describe-capability` per visualizzare lo stato della funzionalità e i problemi di integrità

1.  **Verifica lo stato delle risorse**: controlla le risorse Kubernetes (CRD) che hai creato per verificare le condizioni di stato e gli eventi

1.  **Esamina i registri del controller**: se la consegna dei log è configurata, interroga il controller per individuare eventuali errori e dettagli di riconciliazione

1.  **Rivedi le autorizzazioni IAM**: assicurati che il Capability Role disponga delle autorizzazioni necessarie

1.  **Verifica la configurazione**: verifica che la configurazione specifica della funzionalità sia corretta

## Usa i log del controller per la risoluzione dei problemi
<a name="_use_controller_logs_for_troubleshooting"></a>

Se hai configurato la distribuzione dei log dei controller (vedi[Accedi ai registri del controller EKS Capabilities](capabilities-controller-logs.md)), puoi interrogare i log per identificare errori di riconciliazione, conflitti di risorse e problemi di configurazione.

### Errori di interrogazione su tutti i controller
<a name="_query_errors_across_all_controllers"></a>

```
fields @timestamp, controller, message, error
| filter level = "error"
| sort @timestamp desc
| limit 50
```

### Filtra i log per uno specifico controller di servizio ACK
<a name="_filter_logs_for_a_specific_ack_service_controller"></a>

Usa il `controllerGroup` campo per isolare i log da uno specifico controller di servizio ACK:

```
fields @timestamp, message, error
| filter controllerGroup = "s3.services.k8s.aws"
| filter level = "error"
| sort @timestamp desc
```

Per filtrare ulteriormente per tipo di risorsa (ad esempio, solo `SecurityGroup` i log del controller EC2):

```
fields @timestamp, message, error
| filter controllerGroup = "ec2.services.k8s.aws"
| filter controllerKind = "SecurityGroup"
| sort @timestamp desc
| limit 100
```

### Filtrare i log per una specifica applicazione Argo CD
<a name="_filter_logs_for_a_specific_argo_cd_application"></a>

Usa il `application` campo per isolare i log per una particolare applicazione Argo CD:

```
fields @timestamp, message, error
| filter application = "my-application"
| sort @timestamp desc
| limit 100
```

### Tieni traccia della riconciliazione per una risorsa specifica
<a name="_track_reconciliation_for_a_specific_resource"></a>

Usa il `reconcileID` campo per seguire un singolo ciclo di riconciliazione:

```
fields @timestamp, level, message, error
| filter reconcileID = "your-reconcile-id"
| sort @timestamp asc
```

### Schemi di registro comuni che indicano problemi
<a name="_common_log_patterns_indicating_issues"></a>
+  **Errori di riconciliazione ripetuti**: il controller non è in grado di raggiungere lo stato desiderato per una risorsa. Controlla il `error` campo per dettagli come errori di autorizzazione IAM o configurazioni di risorse non valide.
+  **«Errore di riconciliazione» con errori AWS API**: al Capability Role potrebbero mancare le autorizzazioni per l'operazione specifica del servizio. AWS Rivedi il messaggio di errore e aggiorna le policy IAM di conseguenza.
+  **Nessuna voce di registro per una risorsa**: se non vedi i log di una risorsa che prevedi che il controller si riconcili, verifica che la funzionalità sia presente `ACTIVE` e che la risorsa esista in uno spazio dei nomi a cui la funzionalità può accedere.

## Verifica lo stato della funzionalità
<a name="_check_capability_health"></a>

Tutte le funzionalità EKS forniscono informazioni sullo stato tramite la console EKS e l'`describe-capability`API.

 **Console**:

1. Apri la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home \#/clusters.

1. Seleziona il nome del cluster.

1. Scegli la scheda **Osservabilità**.

1. Scegli **Monitora cluster**.

1. Scegli la ** scheda ** Funzionalità per visualizzare lo stato e lo stato di tutte le funzionalità.

La scheda Funzionalità mostra:
+ Nome e tipo di funzionalità
+ Stato attuale
+ Problemi di salute, con descrizione

 ** AWS CLI: **

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name {{my-capability-name}}
```

La risposta include:
+  **stato**: stato attuale della capacità (`CREATING`,`ACTIVE`,`UPDATING`, `DELETING``CREATE_FAILED`,`UPDATE_FAILED`)
+  **stato di salute**: informazioni sanitarie, inclusi eventuali problemi rilevati dalla funzionalità

## Stati di capacità comuni
<a name="_common_capability_statuses"></a>

 **CREAZIONE**: la funzionalità è in fase di configurazione.

 **ATTIVO**: La capacità è attiva e pronta all'uso. Se le risorse non funzionano come previsto, controlla lo stato delle risorse e le autorizzazioni IAM.

 **AGGIORNAMENTO**: le modifiche alla configurazione sono in corso di applicazione. Attendi il ripristino dello stato`ACTIVE`.

 **CREATE\_FAILED ** o ** UPDATE\_FAILED**: durante l'installazione o l'aggiornamento si è verificato un errore. Per i dettagli, consulta la sezione sullo stato di salute. Cause comuni:
+ Politica di fiducia del ruolo IAM errata o mancante
+ Il ruolo IAM non esiste o non è accessibile
+ Problemi di accesso al cluster
+ Parametri di configurazione non validi

## Verifica lo stato delle risorse Kubernetes
<a name="_verify_kubernetes_resource_status"></a>

EKS Capabilities crea e gestisce le Kubernetes Custom Resource Definitions (CRD) nel tuo cluster. Durante la risoluzione dei problemi, controlla lo stato delle risorse che hai creato:

```
# List resources of a specific type
kubectl get {{resource-kind}} -A

# Describe a specific resource to see conditions and events
kubectl describe {{resource-kind resource-name}} -n {{namespace}}

# View resource status conditions
kubectl get {{resource-kind resource-name}} -n {{namespace}} -o jsonpath='{.status.conditions}'

# View events related to the resource
kubectl get events --field-selector involvedObject.name={{resource-name}} -n {{namespace}}
```

Le condizioni relative allo stato delle risorse forniscono informazioni su:
+ Se la risorsa è pronta
+ Eventuali errori riscontrati
+ Stato attuale della riconciliazione

## Rivedi le autorizzazioni IAM e l'accesso al cluster
<a name="_review_iam_permissions_and_cluster_access"></a>

Molti problemi di funzionalità derivano da problemi di autorizzazione IAM o da una configurazione di accesso al cluster mancante. Verifica sia le autorizzazioni del Capability Role che le voci di accesso al cluster.

### Controlla le autorizzazioni del ruolo IAM
<a name="_check_iam_role_permissions"></a>

Verifica che il Capability Role disponga delle autorizzazioni necessarie:

```
# List attached managed policies
aws iam list-attached-role-policies --role-name {{my-capability-role}}

# List inline policies
aws iam list-role-policies --role-name {{my-capability-role}}

# Get specific policy details
aws iam get-role-policy --role-name {{my-capability-role}} --policy-name {{policy-name}}

# View the role's trust policy
aws iam get-role --role-name {{my-capability-role}} --query 'Role.AssumeRolePolicyDocument'
```

La politica di fiducia deve consentire al responsabile del `capabilities.eks.amazonaws.com` servizio:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

### Controlla le voci di accesso e le politiche di accesso di EKS
<a name="_check_eks_access_entries_and_access_policies"></a>

Tutte le funzionalità richiedono le voci di accesso e le politiche di accesso EKS appropriate sul cluster in cui operano.

 **Verifica l'esistenza di una voce di accesso**:

```
aws eks list-access-entries \
  --cluster-name {{my-cluster}} \
  --region {{region-code}}
```

Cerca il Capability Role ARN nell'elenco. Se manca, la funzionalità non può accedere al cluster.

 **Controlla le politiche di accesso allegate alla voce**:

```
aws eks list-associated-access-policies \
  --cluster-name {{my-cluster}} \
  --principal-arn {{arn:aws:iam::111122223333:role/my-capability-role}} \
  --region {{region-code}}
```

Tutte le funzionalità richiedono politiche di accesso appropriate:
+  **ACK**: necessita delle autorizzazioni per creare e gestire le risorse Kubernetes
+  **kro**: Necessita delle autorizzazioni per creare e gestire le risorse Kubernetes
+  **Argo CD**: necessita delle autorizzazioni per creare e gestire le applicazioni e richiede le voci di accesso su cluster di destinazione remoti per implementazioni multi-cluster

 **Per le implementazioni multi-cluster di Argo CD: **

In caso di distribuzione su cluster remoti, verifica che il Capability Role abbia una voce di accesso su ogni cluster di destinazione:

```
# Check Access Entry on target cluster
aws eks describe-access-entry \
  --cluster-name {{target-cluster}} \
  --principal-arn {{arn:aws:iam::111122223333:role/argocd-capability-role}} \
  --region {{region-code}}
```

Se l'Access Entry non è presente in un cluster di destinazione, Argo CD non può distribuire applicazioni su di esso. [Registra i cluster di destinazione](argocd-register-clusters.md)Per i dettagli di configurazione, vedere.

## Capability-specific risoluzione dei problemi
<a name="_capability_specific_troubleshooting"></a>

Per una guida dettagliata alla risoluzione dei problemi specifica per ogni tipo di funzionalità:
+  [Risolvi i problemi relativi alle funzionalità ACK](ack-troubleshooting.md)- Risolvi i problemi relativi alla creazione di risorse ACK, alle autorizzazioni IAM e all'accesso tra account
+  [Risolvi i problemi relativi alle funzionalità Argo CD](argocd-troubleshooting.md)- Risolvi i problemi di sincronizzazione delle applicazioni, autenticazione del repository e implementazioni multi-cluster
+  [Risolvi i problemi relativi alle funzionalità kro](kro-troubleshooting.md)- Risoluzione dei problemi ResourceGraphDefinitions, delle espressioni CEL e delle autorizzazioni RBAC

## Problemi comuni a tutte le funzionalità
<a name="_common_issues_across_all_capabilities"></a>

### Capacità bloccata nello stato CREATING
<a name="_capability_stuck_in_creating_state"></a>

Se una capacità rimane nello `CREATING` stato più a lungo del previsto:

1. Verifica lo stato delle funzionalità per problemi specifici nella console (**Observability ** > ** Monitor cluster ** > ** scheda ** Capabilities) o utilizzando la AWS CLI:

   ```
   aws eks describe-capability \
     --region {{region-code}} \
     --cluster-name {{my-cluster}} \
     --capability-name {{my-capability-name}} \
     --query 'capability.health'
   ```

1. Verifica che il ruolo IAM esista e abbia la politica di fiducia corretta

1. Assicurati che il tuo cluster sia accessibile e integro

1. Verifica eventuali problemi a livello di cluster che potrebbero impedire la configurazione delle funzionalità

### Risorse non create o aggiornate
<a name="_resources_not_being_created_or_updated"></a>

Se la funzionalità è `ACTIVE` attiva ma le risorse non vengono create o aggiornate:

1. Controlla lo stato delle risorse per verificare la presenza di eventuali condizioni di errore

1. Verifica le autorizzazioni IAM per i AWS servizi (ACK) o i repository specifici (Argo CD)

1. Controlla le autorizzazioni RBAC per la creazione delle risorse sottostanti (kro)

1. Rivedi le specifiche delle risorse per individuare eventuali errori di convalida

### L'integrità delle capacità mostra problemi
<a name="_capability_health_shows_issues"></a>

Se `describe-capability` mostra problemi di salute:

1. Leggi attentamente le descrizioni dei problemi: spesso indicano il problema specifico

1. Risolvi la causa principale (autorizzazioni IAM, errori di configurazione, ecc.)

1. La funzionalità verrà ripristinata automaticamente una volta risolto il problema

## Fasi successive
<a name="_next_steps"></a>
+  [Lavorare con risorse di capacità](working-with-capabilities.md)- Gestisci le risorse relative alle capacità
+  [Risolvi i problemi relativi alle funzionalità ACK](ack-troubleshooting.md)- ACK-specific risoluzione dei problemi
+  [Risolvi i problemi relativi alle funzionalità Argo CD](argocd-troubleshooting.md)- risoluzione dei problemi relativi a Argo CD-specific 
+  [Risolvi i problemi relativi alle funzionalità kro](kro-troubleshooting.md)- risoluzione dei problemi specifici per kro
+  [Considerazioni sulla sicurezza per EKS Capabilities](capabilities-security.md)- Le migliori pratiche di sicurezza per le funzionalità