Risolvi i problemi relativi alle funzionalità ACK - Amazon EKS

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à.

Risolvi i problemi relativi alle funzionalità ACK

Questo argomento fornisce linee guida per la risoluzione dei problemi relativi a EKS Capability for ACK, compresi i controlli dello stato delle funzionalità, la verifica dello stato delle risorse e i problemi di autorizzazione IAM.

Nota

Le funzionalità EKS sono completamente gestite e eseguite all'esterno del cluster. Non hai accesso ai log dei controller o ai namespace dei controller. La risoluzione dei problemi si concentra sullo stato delle funzionalità, sullo stato delle risorse e sulla configurazione IAM.

Le funzionalità sono ATTIVE ma le risorse non vengono create

Se la tua funzionalità ACK mostra ACTIVE lo stato ma le risorse non vengono create AWS, controlla lo stato della capacità, lo stato delle risorse e le autorizzazioni IAM.

Verifica lo stato delle funzionalità:

È possibile visualizzare i problemi relativi allo stato e allo stato delle funzionalità nella console EKS o utilizzando la AWS CLI.

Console:

  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Seleziona il nome del cluster.

  3. Scegli la scheda Osservabilità.

  4. Scegli Monitora cluster.

  5. Scegli la scheda Capacità per visualizzare lo stato e lo stato di tutte le funzionalità.

AWS CLI:

# View capability status and health aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack # Look for issues in the health section

Cause comuni:

  • Autorizzazioni IAM mancanti: al Capability Role mancano le autorizzazioni per il servizio AWS

  • Namespace errato: risorse create nello spazio dei nomi senza un selettore appropriato IAMRole

  • Specifiche della risorsa non valide: controlla le condizioni di stato delle risorse per verificare la presenza di errori di convalida

  • Limitazione delle API: AWS vengono raggiunti i limiti di velocità delle API

  • Webhook di ammissione: webhook di ammissione che impediscono al controller di correggere lo stato delle risorse

Controlla lo stato delle risorse:

# Describe the resource to see conditions and events kubectl describe bucket my-bucket -n default # Look for status conditions kubectl get bucket my-bucket -n default -o jsonpath='{.status.conditions}' # View resource events kubectl get events --field-selector involvedObject.name=my-bucket -n default

Verifica le autorizzazioni IAM:

# View the Capability Role's policies aws iam list-attached-role-policies --role-name my-ack-capability-role aws iam list-role-policies --role-name my-ack-capability-role # Get specific policy details aws iam get-role-policy --role-name my-ack-capability-role --policy-name policy-name

Risorse create in AWS Kubernetes ma non visualizzate

ACK tiene traccia solo delle risorse create tramite i manifesti di Kubernetes. Per gestire le AWS risorse esistenti con ACK, utilizza la funzionalità di adozione.

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name

Per ulteriori informazioni sull'adozione delle risorse, consultaConcetti ACK.

Risorse per più account non create

Se non vengono create risorse in un AWS account di destinazione quando utilizzi IAM Role Selectors, verifica la relazione di fiducia e la configurazione di IAMRole Selector.

Verifica la relazione di fiducia:

# Check the trust policy in the target account role aws iam get-role --role-name cross-account-ack-role --query 'Role.AssumeRolePolicyDocument'

La politica di fiducia deve consentire al ruolo di capacità dell'account di origine di assumerla.

Conferma la configurazione IAMRole del selettore:

# List IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Describe specific selector kubectl describe iamroleselector my-selector

Verifica l'allineamento dello spazio dei nomi:

IAMRoleI selettori sono risorse con ambito cluster ma hanno come target namespace specifici. Assicurati che le tue risorse ACK si trovino in uno spazio dei nomi che corrisponda al selettore dello spazio dei nomi di Selector: IAMRole

# Check resource namespace kubectl get bucket my-cross-account-bucket -n production # List all IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Check which namespace the selector targets kubectl get iamroleselector my-selector -o jsonpath='{.spec.namespaceSelector}'

IAMRoleControlla la condizione selezionata:

Verifica che il IAMRole selettore sia stato abbinato correttamente alla tua risorsa controllando la ACK.IAMRoleSelected condizione:

# Check if IAMRoleSelector was matched kubectl get bucket my-cross-account-bucket -n production -o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'

Se la condizione è presente False o manca, il IAMRole selettore dello spazio dei nomi del selettore non corrisponde allo spazio dei nomi della risorsa. Verifica che il selettore corrisponda alle etichette dello spazio dei nomi della risorsa. namespaceSelector

Verifica le autorizzazioni di Capability Role:

Il ruolo di capacità richiede sts:AssumeRole l'autorizzazione per il ruolo dell'account di destinazione:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::[.replaceable]`444455556666`:role/[.replaceable]`cross-account-ack-role`" } ] }

Per una configurazione dettagliata tra account, consultaConfigurare le autorizzazioni ACK.

Fasi successive