View a markdown version of this page

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

Nota

Le funzionalità EKS sono completamente gestite ed 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 all'indirizzo 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 impostazioni appropriate IAMRoleSelector

  • Specifiche della risorsa non valide: verifica la presenza di errori di convalida nelle condizioni di stato delle risorse

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

Cross-account risorse non create

Se non vengono create risorse in un AWS account di destinazione quando si utilizza IAM Role Selectors, verifica la relazione di trust e la IAMRoleSelector configurazione.

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 Capability Role dell'account di origine di assumerla.

Conferma IAMRoleSelector la configurazione:

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

Verifica l'allineamento dello spazio dei nomi:

IAMRoleSelectors sono risorse con ambito cluster ma destinate a namespace specifici. Assicurati che le tue risorse ACK si trovino in uno spazio dei nomi che corrisponda al selettore dello spazio dei nomi: IAMRoleSelector

# 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}'

Verifica le condizioni: IAMRoleSelected

Verifica che sia IAMRoleSelector 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 selettore IAMRoleSelector dello spazio dei nomi della risorsa non corrisponde allo spazio dei nomi della risorsa. Verifica che il selettore namespaceSelector corrisponda alle etichette dello spazio dei nomi della risorsa.

Verifica le autorizzazioni di Capability Role:

I requisiti sts:AssumeRole e le sts:TagSession autorizzazioni del ruolo Capability Role per il ruolo dell'account di destinazione:

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

Per una configurazione dettagliata tra account, consulta. Configurare le autorizzazioni ACK

Fasi successive