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
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, vedereOperazioni del gateway Amazon EKS Hybrid Nodes.
Pod su nodi ibridi non raggiungibili da VPC
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:
-
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-idsROUTE_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.
-
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-gatewaySe nessun pod detiene il contratto di locazione, vedi. Problemi relativi alle elezioni dei leader
-
Verifica la configurazione VTEP di Cilium sui nodi ibridi. Verifica che la
CiliumVTEPConfigrisorsa esista e contenga l'IP del nodo del leader:kubectl get ciliumvtepconfig hybrid-gateway -o yamlspec.endpoints[0].tunnelEndpointDeve 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. -
Controlla source/destination controlla. source/destination Verifica che il controllo sia disabilitato sulle istanze EC2 del gateway:
aws ec2 describe-instance-attribute \ --instance-idGATEWAY_INSTANCE_ID\ --attribute sourceDestCheckIn caso
sourceDestCheckaffermativotrue, disattivatelo. Consulta Inizia a usare il gateway EKS Hybrid Nodes.
Le chiamate Webhook ai nodi ibridi hanno esito negativo
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
CiliumVTEPConfigrisorsa è mancante o ha un IP dell'endpoint obsoleto.
Fasi diagnostiche:
-
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
-
Controlla la risorsa CiliumVTepConfig. Verifica che la risorsa esista e che
tunnelEndpointcorrisponda all'IP del nodo del leader corrente:kubectl get ciliumvtepconfig hybrid-gateway -o yamlSe 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
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:
-
Verifica le autorizzazioni IAM. Il gateway richiede le seguenti azioni IAM:
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstancesControlla il ruolo IAM associato al profilo di istanza del nodo del gateway o alla configurazione dell'identità del pod.
-
-
Controlla gli ID della tabella di routing nella configurazione. Verifica che la variabile di
ROUTE_TABLE_IDSambiente 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-idsROUTE_TABLE_ID -
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-gatewayLEADER_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
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:
-
Controlla i log dei pod. Visualizza i log del pod in errore per identificare l'errore:
kubectl logs -n eks-hybrid-nodes-gatewayLEADER_POD -
Controlla le variabili di ambiente richieste. Il gateway richiede
NODE_IP,VPC_CIDR, ePOD_CIDRS. Se ne manca uno, il gateway esce immediatamente. Verifica le specifiche del pod:kubectl get pod -n eks-hybrid-nodes-gatewayLEADER_POD-o jsonpath='{.spec.containers[0].env}' | jq .-
NODE_IPviene impostato automaticamente dallestatus.hostIPspecifiche del pod. Se è vuoto, il pod potrebbe non essere ancora pianificato su un nodo. -
VPC_CIDRePOD_CIDRSprovengono dai valori di Helm. Verificate che siano impostati correttamente.
-
-
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 enablednei 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=1Per un'impostazione persistente, configura l'inoltro IP tramite il kubelet o aggiungi a.
net.ipv4.ip_forward=1/etc/sysctl.d/ -
Controlla l'etichetta del nodo e i vincoli di pianificazione. I gateway pod richiedono nodi con l'
hybrid-gateway-node=trueetichetta. L'antiaffinità dei pod assicura che ogni pod funzioni su un nodo separato. Se i pod lo sonoPending, verifica la presenza di problemi di pianificazione:kubectl describe pod -n eks-hybrid-nodes-gatewayLEADER_PODCerca gli eventi che indicano nodi insufficienti, etichette mancanti o conflitti di anti-affinità.
Problemi relativi alle elezioni dei leader
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:
-
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 yamlIl
spec.holderIdentitycampo mostra il leader attuale.spec.renewTimeIndica quando il contratto di locazione è stato rinnovato l'ultima volta. SerenewTimeè obsoleto, il leader potrebbe aver perso la connettività al server API. -
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-gatewayIl ruolo deve includere
getcreate, e iupdateverbi per laleasesrisorsa nel gruppocoordination.k8s.ioAPI. -
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-gatewayLEADER_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 endedseguiti daLeader setup completemessaggi: 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.
-
-
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-deadlinesia 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.
Messaggi di errore comuni
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 |
|---|---|---|
|
|
Il parametro kernel non |
Abilita l'inoltro IP tramite la configurazione kubelet o eseguendo. |
|
|
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. |
Verifica che le specifiche di distribuzione siano incluse |
|
|
Il gateway non può descrivere una o più tabelle di route VPC all'avvio. |
Verifica che il ruolo IAM disponga dell' |
|
|
Il gateway non può creare o sostituire percorsi nelle tabelle di routing VPC. |
Verifica che il ruolo IAM disponga delle |
|
|
Il gateway non può inizializzare il client AWS EC2 o recuperare l'ENI primario dell'istanza. |
Verifica che il ruolo IAM disponga dell' |
|
|
La variabile o il |
Verifica che le specifiche del pod siano |
|
|
Il valore fornito non |
Controlla il valore della variabile di |
|
|
La variabile di |
Imposta i valori |
|
|
Il |
Controlla il valore |
|
|
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 |
|
|
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 |
|
|
|
Verifica che il nodo ibrido sia registrato correttamente e che l'agente Cilium sia in esecuzione. Controlla la |
|
|
|
Verifica che Cilium IPAM sia configurato correttamente sul nodo ibrido. Controlla la |
|
|
Il gateway non può creare o aggiornare la risorsa |
Verifica che il CRD sia installato nel cluster e che l'account del servizio del gateway disponga delle autorizzazioni per gestire |
|
|
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. |
|
|
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 |
|
|
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. |
|
|
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. |
|
|
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 |
Argomenti correlati
-
Gateway Amazon EKS Hybrid Nodes— Panoramica dell'architettura del gateway e dei casi d'uso.
-
Inizia a usare il gateway EKS Hybrid Nodes— Prerequisiti e istruzioni di installazione.
-
Riferimento alla configurazione del gateway Amazon EKS Hybrid Nodes— Riferimento completo per i valori Helm, i flag CLI e le variabili di ambiente.
-
Operazioni del gateway Amazon EKS Hybrid Nodes— Guida al monitoraggio, al comportamento del failover e alla scalabilità.