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à.
Risoluzione dei problemi del gateway Amazon EKS Hybrid Nodes
Questa pagina fornisce indicazioni 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 Kubernetes.
Possibili cause:
-
Le voci della tabella delle rotte in VPC mancano o indicano l'ENI errato.
-
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 dei percorsi in VPC. Verifica che i percorsi per i tuoi pod ibridi CIDR esistano e puntino all'ENI principale dell'istanza Active Gateway:
aws ec2 describe-route-tables \ --route-table-idsROUTE_TABLE_ID\ --query "RouteTables[].Routes[?DestinationCidrBlock=='[.replaceable]`POD_CIDR`']"Se mancano delle route, controlla i log del gateway per eventuali errori nella tabella delle rotte. Se le rotte puntano all'ENI errato, è 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 funzione e che uno disponga del 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
-
Controlla la configurazione di Cilium VTEP sui nodi ibridi. Verifica che la
CiliumVTEPConfigrisorsa esista e contenga l'IP del nodo leader:kubectl get ciliumvtepconfig hybrid-gateway -o yamlspec.endpoints[0].tunnelEndpointDeve corrispondere all'indirizzo IP del nodo gateway leader. Se la risorsa è mancante o ha un IP obsoleto, è possibile che il gateway non abbia completato la configurazione leader. -
Controlla e 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, disabilitalo. Per informazioni, 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. Le richieste di ammissione ai Webhook scadono o restituiscono errori di connessione.
Possibili cause:
-
Il gateway non indirizza il traffico dal piano di controllo ai pod ibridi.
-
La
CiliumVTEPConfigrisorsa è mancante o ha un indirizzo 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. Verifica che le voci della tabella di routing VPC siano corrette utilizzando i passaggi in. Pod su nodi ibridi non raggiungibili da VPC
-
Controlla la risorsa CiliumVtepConfig. Verifica che la risorsa esista e che
tunnelEndpointcorrisponda all'IP del nodo leader corrente:kubectl get ciliumvtepconfig hybrid-gateway -o yamlSe l'endpoint del tunnel è obsoleto (punta a un leader precedente), è possibile che il gateway non abbia 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 VPC non riescono
I log del gateway mostrano errori relativi alle operazioni della tabella di routing VPC e le route per i CIDR dei pod ibridi non vengono create o aggiornate.
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 routing 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 o alla configurazione dell'identità del pod del nodo gateway.
-
-
Controlla gli ID della tabella delle rotte nella configurazione. Verifica che la variabile di
ROUTE_TABLE_IDSambiente contenga ID di tabella di routing validi 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 delle rotte esistano nel tuo VPC:
aws ec2 describe-route-tables --route-table-idsROUTE_TABLE_ID -
Controlla i log del gateway per verificare la presenza di errori nella tabella delle rotte. Cerca i messaggi di errore relativi alle operazioni sulla 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 delle tabelle 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 percorso potrebbe essere errato o il ruolo IAM potrebbeec2:DescribeRouteTablesmancare.
-
I gateway pod non si avviano o non sono integri
I gateway pod sono attivi o in CrashLoopBackOff Pending stato o 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 di antiaffinità impediscono la pianificazione.
Fasi diagnostiche:
-
Controlla i registri dei pod. Visualizza i log del pod in cui si è verificato l'errore per identificare l'errore:
kubectl logs -n eks-hybrid-nodes-gatewayLEADER_POD -
Controlla le variabili di ambiente richieste. Il gateway richiede
NODE_IPVPC_CIDR, ePOD_CIDRS. Se ne mancano alcuni, 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 programmato su un nodo. -
VPC_CIDRePOD_CIDRSprovengono dai valori di Helm. Verifica che siano impostati correttamente.
-
-
Controlla l'inoltro IP. Il gateway verifica che l'inoltro IP sia abilitato all'avvio e si chiude 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 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'etichetta.
hybrid-gateway-node=trueL'antiaffinità dei pod garantisce che ogni pod funzioni su un nodo separato. Se i pod lo sonoPending, verifica se ci sono 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 in funzione ma nessun pod acquisisce il contratto di locazione leader, oppure le transizioni di leadership avvengono frequentemente.
Possibili cause:
-
Mancano le autorizzazioni RBAC per gli oggetti Lease.
-
La connettività di rete tra i pod gateway e il server API Kubernetes non è affidabile.
-
I parametri di elezione dei leader non sono configurati correttamente.
Fasi diagnostiche:
-
Controllate 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 gli 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, eupdateverbi per laleasesrisorsa nel gruppo dicoordination.k8s.ioAPI. -
Controlla i log dei pod per verificare la presenza di errori di leasing. Cerca gli errori relativi alle elezioni 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. Controllate le autorizzazioni RBAC. -
Frequente
Leadership endedseguito daLeader setup completemessaggi: il leader sta perdendo e riacquistando il contratto di locazione. Ciò può indicare un'instabilità di 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}'Assicurarsi
--leader-election-renew-deadlineche sia inferiore a--leader-election-lease-duration. Se la scadenza per il rinnovo supera la durata del contratto di locazione, il leader 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 è possibile 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 può creare l'interfaccia di rete VXLAN. Ciò si verifica in genere quando il pod non dispone della |
Verifica che le specifiche di distribuzione siano incluse |
|
|
Il gateway non può descrivere una o più tabelle di routing VPC all'avvio. |
Verifica che il ruolo IAM disponga dell' |
|
|
Il gateway non può creare o sostituire percorsi nelle tabelle di routing VPC. |
Verifica le autorizzazioni |
|
|
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 di |
Verifica che i set di specifiche del pod |
|
|
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 dell'istanza 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 gateway disponga delle autorizzazioni per gestire |
|
|
Impossibile inizializzare il controller-runtime manager. |
Controlla i log del pod per un contesto aggiuntivo. Le cause più comuni includono kubeconfig non valido o l'impossibilità di raggiungere il server dell'API Kubernetes. |
|
|
Il runnable eletto dal leader non può essere registrato presso il controller manager. |
Si tratta in genere di un errore interno. Controlla i log completi del pod per un contesto aggiuntivo 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. Verificate 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 dell'API Kubernetes o un conflitto di porte sugli indirizzi di associazione delle metriche o dell'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— Monitoraggio, comportamento di failover e guida alla scalabilità.