

 **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 al gateway Amazon EKS Hybrid Nodes
<a name="hybrid-nodes-gateway-troubleshooting"></a>

Questa pagina fornisce una guida per la diagnosi e la risoluzione di problemi comuni con il gateway Amazon EKS Hybrid Nodes. Ogni sezione descrive un sintomo, le possibili cause, i passaggi diagnostici e le soluzioni. Per i dettagli operativi, vedere[Operazioni del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md).

## Pod su nodi ibridi non raggiungibili da VPC
<a name="hybrid-nodes-gateway-ts-unreachable"></a>

I pod in esecuzione su nodi ibridi non sono raggiungibili dalle risorse del VPC, come le istanze EC2, i sistemi di bilanciamento del carico o il piano di controllo di Kubernetes.

 **Possibili cause:** 
+ Le voci della tabella di routing del VPC sono mancanti o indirizzano all'ENI sbagliato.
+ Il gateway leader pod non è in esecuzione o non ha completato la configurazione.
+ Cilium VTEP non è abilitato o configurato sui nodi ibridi.
+ Source/destination il controllo è abilitato sull'istanza EC2 del gateway.

 **Fasi diagnostiche: ** 

1.  **Controlla le voci della tabella di routing del VPC. ** Verifica che i percorsi per i CIDR del tuo pod ibrido esistano e puntino all'ENI primario dell'istanza del gateway attivo:

   ```
   aws ec2 describe-route-tables \
     --route-table-ids {{ROUTE_TABLE_ID}} \
     --query "RouteTables[].Routes[?DestinationCidrBlock=='POD_CIDR']"
   ```

   Se mancano delle route, controlla i log del gateway per eventuali errori nella tabella delle route. Se le route puntano all'ENI sbagliato, è possibile che un failover non sia stato completato correttamente.

1.  **Controlla lo stato del gateway pod e l'elezione del leader. ** Verifica che due gateway pod siano in esecuzione e uno detenga il contratto di locazione leader:

   ```
   kubectl get pods -n eks-hybrid-nodes-gateway
   kubectl get lease -n eks-hybrid-nodes-gateway
   ```

   Se nessun pod detiene il contratto di locazione, vedi. [Problemi relativi alle elezioni dei leader](#hybrid-nodes-gateway-ts-leader)

1.  **Verifica la configurazione VTEP di Cilium sui nodi ibridi. ** Verifica che la `CiliumVTEPConfig` risorsa esista e contenga l'IP del nodo del leader:

   ```
   kubectl get ciliumvtepconfig hybrid-gateway -o yaml
   ```

   `spec.endpoints[0].tunnelEndpoint`Deve corrispondere all'indirizzo IP del nodo del gateway leader. Se la risorsa è mancante o ha un IP obsoleto, è possibile che la configurazione del gateway non sia stata completata.

1.  **Controlla source/destination controlla. ** source/destination Verifica che il controllo sia disabilitato sulle istanze EC2 del gateway:

   ```
   aws ec2 describe-instance-attribute \
     --instance-id {{GATEWAY_INSTANCE_ID}} \
     --attribute sourceDestCheck
   ```

   In caso `sourceDestCheck` affermativo`true`, disattivatelo. Consulta [Inizia a usare il gateway EKS Hybrid Nodes](hybrid-nodes-gateway-getting-started.md).

## Le chiamate Webhook ai nodi ibridi hanno esito negativo
<a name="hybrid-nodes-gateway-ts-webhooks"></a>

Il server API Kubernetes non può raggiungere gli endpoint webhook in esecuzione su nodi ibridi. L'ammissione di Webhook richiede un timeout o restituisce errori di connessione.

 **Possibili cause:** 
+ Il gateway non sta indirizzando il traffico dal piano di controllo ai pod ibridi.
+ La `CiliumVTEPConfig` risorsa è mancante o ha un IP dell'endpoint obsoleto.

 **Fasi diagnostiche: ** 

1.  **Verificare che il piano di controllo possa raggiungere l'IP del nodo gateway. ** Il piano di controllo invia il traffico alla tabella delle rotte VPC, che lo inoltra all'ENI del gateway. Conferma che le voci della tabella di routing VPC siano corrette utilizzando i passaggi indicati. [Pod su nodi ibridi non raggiungibili da VPC](#hybrid-nodes-gateway-ts-unreachable)

1.  **Controlla la risorsa CiliumVTepConfig. ** Verifica che la risorsa esista e che `tunnelEndpoint` corrisponda all'IP del nodo del leader corrente:

   ```
   kubectl get ciliumvtepconfig hybrid-gateway -o yaml
   ```

   Se l'endpoint del tunnel è obsoleto (rimanda a un leader precedente), il gateway potrebbe non aver completato la sequenza di configurazione del leader. Verificate la presenza di errori nei log del gateway durante l'upsert`CiliumVTEPConfig`.

## Gli aggiornamenti della tabella di routing di VPC non riescono
<a name="hybrid-nodes-gateway-ts-routes"></a>

I log del gateway mostrano errori relativi alle operazioni della tabella di routing VPC e i percorsi per i CIDR pod ibridi non vengono creati o aggiornati.

 **Possibili cause:** 
+ Il ruolo IAM del gateway non dispone delle autorizzazioni EC2 richieste.
+ Gli ID delle tabelle di routing nella configurazione non sono corretti o le tabelle di route non esistono.
+ Il gateway non può raggiungere l'endpoint dell'API EC2.

 **Fasi diagnostiche: ** 

1.  **Verifica le autorizzazioni IAM. ** Il gateway richiede le seguenti azioni IAM:
   +  `ec2:DescribeRouteTables` 
   +  `ec2:CreateRoute` 
   +  `ec2:ReplaceRoute` 
   +  `ec2:DescribeInstances` 

     Controlla il ruolo IAM associato al profilo di istanza del nodo del gateway o alla configurazione dell'identità del pod.

1.  **Controlla gli ID della tabella di routing nella configurazione. ** Verifica che la variabile di `ROUTE_TABLE_IDS` ambiente contenga ID validi della tabella di routing nella distribuzione del gateway:

   ```
   kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].env}' | jq .
   ```

   Verifica che gli ID della tabella di routing siano presenti nel tuo VPC:

   ```
   aws ec2 describe-route-tables --route-table-ids {{ROUTE_TABLE_ID}}
   ```

1.  **Controlla i log del gateway per individuare eventuali errori nella tabella di routing. ** Cerca i messaggi di errore relativi alle operazioni della tabella di routing:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}} | grep -i "route table"
   ```

   I messaggi di errore più comuni includono:
   +  `Failed to verify route table access`— Il gateway non è in grado di descrivere la tabella delle rotte. Controlla le autorizzazioni IAM e gli ID della tabella di routing.
   +  `Failed to update route tables`— Il gateway non può creare o sostituire percorsi. Controlla le autorizzazioni IAM.
   +  `failed to access route table`— L'ID della tabella di routing potrebbe essere errato o il ruolo IAM non è valido. `ec2:DescribeRouteTables`

## I gateway pod non si avviano o non sono integri
<a name="hybrid-nodes-gateway-ts-pods"></a>

I gateway pod sono attivi o sono in `CrashLoopBackOff` `Pending` stato oppure l'endpoint di integrità restituisce un errore. `Error`

 **Possibili cause:** 
+ Le variabili di ambiente richieste (`VPC_CIDR`,`POD_CIDRS`,`ROUTE_TABLE_IDS`) non sono impostate.
+ L'inoltro IP non è abilitato sul nodo gateway.
+ L'etichetta del nodo o i vincoli anti-affinità impediscono la pianificazione.

 **Fasi diagnostiche: ** 

1.  **Controlla i log dei pod. ** Visualizza i log del pod in errore per identificare l'errore:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}}
   ```

1.  **Controlla le variabili di ambiente richieste. ** Il gateway richiede`NODE_IP`,`VPC_CIDR`, e`POD_CIDRS`. Se ne manca uno, il gateway esce immediatamente. Verifica le specifiche del pod:

   ```
   kubectl get pod -n eks-hybrid-nodes-gateway {{LEADER_POD}} -o jsonpath='{.spec.containers[0].env}' | jq .
   ```
   +  `NODE_IP`viene impostato automaticamente dalle `status.hostIP` specifiche del pod. Se è vuoto, il pod potrebbe non essere ancora pianificato su un nodo.
   +  `VPC_CIDR`e `POD_CIDRS` provengono dai valori di Helm. Verificate che siano impostati correttamente.

1.  **Controlla l'inoltro IP. ** Il gateway verifica che l'inoltro IP sia abilitato all'avvio ed esce in caso contrario. Cerca il messaggio di errore `IP forwarding is not enabled` nei log del pod. Abilita l'inoltro IP sul nodo:

   ```
   # Check current setting
   cat /proc/sys/net/ipv4/ip_forward
   
   # Enable if not set
   sudo sysctl -w net.ipv4.ip_forward=1
   ```

   Per un'impostazione persistente, configura l'inoltro IP tramite il kubelet o aggiungi a. `net.ipv4.ip_forward=1` `/etc/sysctl.d/`

1.  **Controlla l'etichetta del nodo e i vincoli di pianificazione. ** I gateway pod richiedono nodi con l'`hybrid-gateway-node=true`etichetta. L'antiaffinità dei pod assicura che ogni pod funzioni su un nodo separato. Se i pod lo sono`Pending`, verifica la presenza di problemi di pianificazione:

   ```
   kubectl describe pod -n eks-hybrid-nodes-gateway {{LEADER_POD}}
   ```

   Cerca gli eventi che indicano nodi insufficienti, etichette mancanti o conflitti di anti-affinità.

## Problemi relativi alle elezioni dei leader
<a name="hybrid-nodes-gateway-ts-leader"></a>

I gateway pod sono funzionanti ma nessun pod acquisisce il contratto di leadership, oppure le transizioni di leadership avvengono frequentemente.

 **Possibili cause:** 
+ Mancano le autorizzazioni RBAC per gli oggetti Lease.
+ La connettività di rete tra i gateway pod e il server API Kubernetes non è affidabile.
+ I parametri di elezione dei leader non sono configurati correttamente.

 **Fasi diagnostiche: ** 

1.  **Controlla l'oggetto Lease. ** Verifica l'esistenza del contratto di locazione e ispeziona il suo attuale titolare:

   ```
   kubectl get lease -n eks-hybrid-nodes-gateway hybrid-gateway-leader -o yaml
   ```

   Il `spec.holderIdentity` campo mostra il leader attuale. `spec.renewTime`Indica quando il contratto di locazione è stato rinnovato l'ultima volta. Se `renewTime` è obsoleto, il leader potrebbe aver perso la connettività al server API.

1.  **Controlla le autorizzazioni RBAC. ** L'account del servizio gateway necessita delle autorizzazioni per ottenere, creare e aggiornare oggetti Lease nel namespace del gateway. Verifica il ruolo e: RoleBinding

   ```
   kubectl get role -n eks-hybrid-nodes-gateway
   kubectl get rolebinding -n eks-hybrid-nodes-gateway
   ```

   Il ruolo deve includere `get``create`, e i `update` verbi per la `leases` risorsa nel gruppo `coordination.k8s.io` API.

1.  **Controlla i log dei pod per eventuali errori di leasing. ** Cerca gli errori di elezione dei leader nei log del pod:

   ```
   kubectl logs -n eks-hybrid-nodes-gateway {{LEADER_POD}} | grep -i "leader\|lease"
   ```

   I problemi comuni includono:
   +  `Failed to acquire lease`— Il pod non può creare o aggiornare l'oggetto Lease. Controlla le autorizzazioni RBAC.
   + Frequenti `Leadership ended` seguiti da `Leader setup complete` messaggi: il leader perde e riacquista il contratto di locazione. Ciò può indicare l'instabilità della rete tra il pod e il server API. Considerate l'idea di aumentare`--leader-election-lease-duration`.

1.  **Controlla i parametri di elezione dei leader. ** Verifica i valori configurati:

   ```
   kubectl get deployment eks-hybrid-nodes-gateway -n eks-hybrid-nodes-gateway -o jsonpath='{.spec.template.spec.containers[0].args}'
   ```

   Assicurati che `--leader-election-renew-deadline` sia inferiore a`--leader-election-lease-duration`. Se il termine di rinnovo supera la durata del contratto di locazione, il conduttore perde il contratto di locazione prima che possa rinnovarlo. Per ulteriori informazioni, consulta [Ottimizzazione delle elezioni dei leader](hybrid-nodes-gateway-configuration.md#hybrid-nodes-gateway-leader-tuning).

## Messaggi di errore comuni
<a name="hybrid-nodes-gateway-ts-errors"></a>

La tabella seguente elenca i messaggi di errore che potresti visualizzare nei log dei pod del gateway e le relative risoluzioni.


| Messaggio di errore | Causa | Risoluzione | 
| --- | --- | --- | 
|  `IP forwarding is not enabled`  | Il parametro kernel non `net.ipv4.ip_forward` è impostato `1` sul nodo gateway. | Abilita l'inoltro IP tramite la configurazione kubelet o eseguendo. `sysctl -w net.ipv4.ip_forward=1` | 
|  `Failed to setup VXLAN`  | Il gateway non è in grado di creare l'interfaccia di rete VXLAN. Ciò si verifica in genere quando il pod non è in grado di funzionare. `NET_ADMIN` | Verifica che le specifiche di distribuzione siano incluse `NET_ADMIN` in. `securityContext.capabilities.add` Verifica che il diagramma Helm sia distribuito correttamente. | 
|  `Failed to verify route table access`  | Il gateway non può descrivere una o più tabelle di route VPC all'avvio. | Verifica che il ruolo IAM disponga dell'`ec2:DescribeRouteTables`autorizzazione e che gli ID della tabella di routing nella configurazione siano corretti. | 
|  `Failed to update route tables`  | Il gateway non può creare o sostituire percorsi nelle tabelle di routing VPC. | Verifica che il ruolo IAM disponga delle `ec2:ReplaceRoute` autorizzazioni `ec2:CreateRoute` e delle autorizzazioni. | 
|  `Failed to create route table manager`  | Il gateway non può inizializzare il client AWS EC2 o recuperare l'ENI primario dell'istanza. | Verifica che il ruolo IAM disponga dell'`ec2:DescribeInstances`autorizzazione e che il servizio di metadati dell'istanza (IMDS) sia accessibile. | 
|  `NODE_IP is required`  | La variabile o il `--node-ip` flag di `NODE_IP` ambiente non è impostato. | Verifica che le specifiche del pod siano `NODE_IP` impostate `status.hostIP` utilizzando un`fieldRef`. Verifica che il diagramma Helm sia distribuito correttamente. | 
|  `Invalid NODE_IP`  | Il valore fornito non `NODE_IP` è un indirizzo IP valido. | Controlla il valore della variabile di `NODE_IP` ambiente nelle specifiche del pod. | 
|  `pod-cidrs and vpc-cidr are required`  | La variabile di `VPC_CIDR` ambiente `POD_CIDRS` or è vuota. | Imposta i valori `podCIDRs` e `vpcCIDR` Helm durante l'installazione. | 
|  `No valid route table IDs provided`  | Il `ROUTE_TABLE_IDS` valore è stato impostato ma non contiene ID validi della tabella di routing dopo l'analisi. | Controlla il valore `routeTableIDs` Helm per eventuali errori di formattazione. Gli ID della tabella di routing devono essere separati da virgole (ad esempio,). `rtb-abc123,rtb-def456` | 
|  `Failed to auto-detect AWS region`  | Il gateway non può recuperare la AWS regione dai metadati delle istanze EC2. | Verifica che il servizio di metadati dell'istanza (IMDS) sia accessibile. In alternativa, imposta il `--aws-region` flag o la variabile di `AWS_REGION` ambiente in modo esplicito. | 
|  `Failed to auto-detect AWS instance ID`  | Il gateway non può recuperare l'ID dell'istanza dai metadati dell'istanza EC2. | Verifica che il servizio di metadati dell'istanza (IMDS) sia accessibile. In alternativa, imposta il `--aws-instance-id` flag o la variabile di `AWS_INSTANCE_ID` ambiente in modo esplicito. | 
|  `CiliumNode has no internal IP`  | `CiliumNode`L'oggetto di un nodo ibrido non ha un indirizzo IP interno nelle sue specifiche. | Verifica che il nodo ibrido sia registrato correttamente e che l'agente Cilium sia in esecuzione. Controlla la `CiliumNode` risorsa per il nodo. | 
|  `CiliumNode <name> has no pod CIDRs allocated`  | `CiliumNode`L'oggetto di un nodo ibrido non ha CIDR pod allocati da Cilium IPAM. | Verifica che Cilium IPAM sia configurato correttamente sul nodo ibrido. Controlla la `CiliumNode` risorsa per lo stato IPAM del nodo. | 
|  `Failed to upsert CiliumVTEPConfig`  | Il gateway non può creare o aggiornare la risorsa `CiliumVTEPConfig` personalizzata. | Verifica che il CRD sia installato nel cluster e che l'account del servizio del gateway disponga delle autorizzazioni per gestire `CiliumVTEPConfig` le risorse. | 
|  `Unable to create manager`  | L'inizializzazione del controller-runtime manager non è riuscita. | Controlla i log del pod per un contesto aggiuntivo. Le cause più comuni includono kubeconfig non valido o l'impossibilità di raggiungere il server API Kubernetes. | 
|  `Failed to add gateway setup`  | Il runnable eletto dal leader non può essere registrato con il controller manager. | Si tratta in genere di un errore interno. Controlla i log completi del pod per ulteriori informazioni e segnala il problema nel [ GitHub repository](https://github.com/aws/eks-hybrid-nodes-gateway). | 
|  `Unable to create Node controller`  | Il CiliumNode riconciliatore non può essere registrato presso il controller manager. | Controlla i log del pod per un contesto aggiuntivo. Verifica che il CiliumNode CRD sia installato nel cluster. | 
|  `Problem running manager`  | Il controller manager è uscito in modo imprevisto. | Controlla nei log del pod l'errore sottostante. Le cause più comuni includono la perdita di connettività al server API Kubernetes o un conflitto di porte nelle metriche o negli indirizzi di bind di health probe. | 
|  `failed to access route table <id>`  | Il gateway non è in grado di descrivere una tabella di routing VPC specifica durante il controllo di verifica dell'avvio. | Verifica che il ruolo IAM disponga `ec2:DescribeRouteTables` dell'autorizzazione e che l'ID della tabella di routing sia corretto. La tabella di routing deve esistere nella stessa regione dell'istanza del gateway. | 

## Argomenti correlati
<a name="hybrid-nodes-gateway-ts-related"></a>
+  [Gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-overview.md)— Panoramica dell'architettura del gateway e dei casi d'uso.
+  [Inizia a usare il gateway EKS Hybrid Nodes](hybrid-nodes-gateway-getting-started.md)— Prerequisiti e istruzioni di installazione.
+  [Riferimento alla configurazione del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md)— Riferimento completo per i valori Helm, i flag CLI e le variabili di ambiente.
+  [Operazioni del gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md)— Guida al monitoraggio, al comportamento del failover e alla scalabilità.