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 delle funzionalità EKS
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 registri dei controller. È possibile configurare la consegna dei log dei controller per ottenere visibilità sul comportamento dei controller. Per informazioni, consulta Accedi ai registri del controller EKS Capabilities.
Un approccio generale alla risoluzione dei problemi
Per la risoluzione dei problemi relativi a EKS Capabilities, seguite questo approccio generale:
-
Verifica dello stato delle funzionalità: utilizza
aws eks describe-capabilityper visualizzare lo stato delle funzionalità e i problemi di integrità -
Verifica lo stato delle risorse: controlla le risorse Kubernetes (CRD) che hai creato per verificare le condizioni e gli eventi relativi allo stato
-
Esamina i log del controller: se la consegna dei log è configurata, interroga i log del controller per eventuali errori e dettagli di riconciliazione
-
Rivedi le autorizzazioni IAM: assicurati che Capability Role disponga delle autorizzazioni necessarie
-
Verifica la configurazione: verifica che la configurazione specifica della funzionalità sia corretta
Utilizza i registri del controller per la risoluzione dei problemi
Se hai configurato la consegna dei log del controller (vediAccedi ai registri del controller EKS Capabilities), puoi interrogare i log per identificare errori di riconciliazione, conflitti di risorse e problemi di configurazione.
Errori di interrogazione su tutti i controller
fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50
Filtra i log per uno specifico controller di servizio ACK
Usa il controllerGroup campo per isolare i log da un controller di servizio ACK specifico:
fields @timestamp, message, error | filter controllerGroup = "s3.services.k8s.aws" | filter level = "error" | sort @timestamp desc
Per filtrare ulteriormente in base al 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
Utilizzate il application campo per isolare i log di 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
Utilizza 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
-
Errori di riconciliazione ripetuti: il controller non è in grado di raggiungere lo stato desiderato per una risorsa. Controlla il
errorcampo per dettagli come errori di autorizzazione IAM o configurazioni di risorse non valide. -
«Errore di riconciliazione» con errori dell' AWS API: al Capability Role potrebbero mancare le autorizzazioni per la specifica operazione del servizio. AWS Esamina il messaggio di errore e aggiorna di conseguenza le policy IAM.
-
Nessuna voce di registro per una risorsa: se non vedi i log di una risorsa che ti aspetti che il controller esegua la riconciliazione, verifica che la funzionalità sia disponibile
ACTIVEe che la risorsa esista in uno spazio dei nomi a cui la funzionalità può accedere.
Verifica lo stato della funzionalità
Tutte le funzionalità EKS forniscono informazioni sanitarie tramite la console EKS e l'describe-capabilityAPI.
Console:
-
Apri la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home #/clusters.
-
Seleziona il nome del cluster.
-
Scegli la scheda Osservabilità.
-
Scegli Monitora cluster.
-
Scegli la scheda Capacità per visualizzare lo stato e lo stato di tutte le funzionalità.
La scheda Capacità mostra:
-
Nome e tipo di funzionalità
-
Stato attuale
-
Problemi di salute, con descrizione
AWS CLI:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-capability-name
La risposta include:
-
status: stato attuale della capacità (
CREATING,ACTIVE,UPDATING,DELETINGCREATE_FAILED,UPDATE_FAILED) -
salute: informazioni sanitarie, inclusi eventuali problemi rilevati dalla funzionalità
Stati di funzionalità comuni
CREAZIONE: La funzionalità è in fase di configurazione.
ATTIVO: La funzionalità è attiva e pronta all'uso. Se le risorse non funzionano come previsto, controlla lo stato delle risorse e le autorizzazioni IAM.
AGGIORNAMENTO: vengono applicate le modifiche alla configurazione. Attendi che lo stato ritorni aACTIVE.
CREATE_FAILED o UPDATE_FAILED: durante l'installazione o l'aggiornamento si è verificato un errore. Consulta la sezione dedicata alla salute per i dettagli. Cause comuni:
-
La politica di fiducia dei ruoli 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
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 getresource-kind-A # Describe a specific resource to see conditions and events kubectl describeresource-kindresource-name-nnamespace# View resource status conditions kubectl getresource-kindresource-name-nnamespace-o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name-nnamespace
Le condizioni sullo stato delle risorse forniscono informazioni su:
-
Se la risorsa è pronta
-
Eventuali errori riscontrati
-
Stato attuale di riconciliazione
Verifica le autorizzazioni IAM e l'accesso al cluster
Molti problemi di funzionalità derivano da problemi di autorizzazione IAM o dalla mancata configurazione dell'accesso al cluster. Verifica sia le autorizzazioni di Capability Role che le voci di accesso al cluster.
Controlla le autorizzazioni dei ruoli IAM
Verifica che il ruolo Capability disponga delle autorizzazioni necessarie:
# List attached managed policies aws iam list-attached-role-policies --role-namemy-capability-role# List inline policies aws iam list-role-policies --role-namemy-capability-role# Get specific policy details aws iam get-role-policy --role-namemy-capability-role--policy-namepolicy-name# View the role's trust policy aws iam get-role --role-namemy-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
Tutte le funzionalità richiedono voci di accesso e politiche di accesso EKS adeguate nel cluster in cui operano.
Verifica che esista Access Entry:
aws eks list-access-entries \ --cluster-namemy-cluster\ --regionregion-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-namemy-cluster\ --principal-arnarn:aws:iam::111122223333:role/my-capability-role\ --regionregion-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: richiede le autorizzazioni per creare e gestire le applicazioni e richiede le voci di accesso su cluster di destinazione remoti per le implementazioni multi-cluster
Per le implementazioni multicluster di Argo CD:
Se effettui la distribuzione su cluster remoti, verifica che il Capability Role abbia un Access Entry su ogni cluster di destinazione:
# Check Access Entry on target cluster aws eks describe-access-entry \ --cluster-nametarget-cluster\ --principal-arnarn:aws:iam::111122223333:role/argocd-capability-role\ --regionregion-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 destinazionePer i dettagli di configurazione, vedere.
Capability-specific risoluzione dei problemi
Per una guida dettagliata alla risoluzione dei problemi specifica per ogni tipo di funzionalità:
-
Risolvi i problemi relativi alle funzionalità ACK- Risolvi i problemi relativi alla creazione di risorse ACK, alle autorizzazioni IAM e all'accesso tra account
-
Risolvi i problemi relativi alle funzionalità di Argo CD- Risolvi i problemi di sincronizzazione delle applicazioni, autenticazione del repository e implementazioni multi-cluster
-
Risolvi i problemi relativi alle funzionalità kro- Risoluzione dei problemi ResourceGraphDefinitions, delle espressioni CEL e delle autorizzazioni RBAC
Problemi comuni a tutte le funzionalità
Capacità bloccata nello stato CREATING
Se una funzionalità rimane attiva CREATING più a lungo del previsto:
-
Verifica lo stato delle funzionalità per problemi specifici nella console (Osservabilità > Monitor cluster > scheda Capacità) o utilizzando la AWS CLI:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-capability-name\ --query 'capability.health' -
Verifica che il ruolo IAM esista e abbia la politica di fiducia corretta
-
Assicurati che il tuo cluster sia accessibile e integro
-
Verifica la presenza di eventuali problemi a livello di cluster che potrebbero impedire la configurazione delle funzionalità
Risorse non create o aggiornate
Se la funzionalità è ACTIVE presente ma le risorse non vengono create o aggiornate:
-
Controlla lo stato delle risorse per verificare eventuali condizioni di errore
-
Verifica le autorizzazioni IAM per i AWS servizi specifici (ACK) o i repository (Argo CD)
-
Controlla le autorizzazioni RBAC per la creazione di risorse sottostanti (kro)
-
Rivedi le specifiche delle risorse per verificare eventuali errori di convalida
Lo stato delle capacità mostra problemi
Se describe-capability presenta problemi di salute:
-
Leggi attentamente le descrizioni dei problemi: spesso indicano il problema specifico
-
Risolvi la causa principale (autorizzazioni IAM, errori di configurazione, ecc.)
-
La funzionalità verrà ripristinata automaticamente una volta risolto il problema
Fasi successive
-
Lavorare con le risorse di capacità- Gestisci le risorse funzionali
-
Risolvi i problemi relativi alle funzionalità ACK- ACK-specific risoluzione dei problemi
-
Risolvi i problemi relativi alle funzionalità di Argo CD- Risoluzione dei problemi di Argo CD-specific
-
Risolvi i problemi relativi alle funzionalità kro- risoluzione dei problemi specifici per kro
-
Considerazioni sulla sicurezza per EKS Capabilities- Le migliori pratiche di sicurezza per quanto riguarda le funzionalità