Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résoudre les problèmes liés aux fonctionnalités ACK
Note
Les fonctionnalités EKS sont entièrement gérées et exécutées en dehors de votre cluster. Vous n'avez pas accès aux journaux ni aux espaces de noms des contrôleurs. Le dépannage se concentre sur l'état des capacités, l'état des ressources et la configuration IAM.
La capacité est ACTIVE mais les ressources ne sont pas créées
Si votre fonctionnalité ACK affiche un ACTIVE état mais que les ressources n'y sont pas créées AWS, vérifiez l'état de la fonctionnalité, l'état des ressources et les autorisations IAM.
Vérifiez l'état de santé des capacités :
Vous pouvez consulter les problèmes liés à l'état et à l'état des fonctionnalités dans la console EKS ou à l'aide de la AWS CLI.
Console :
-
Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home #/clusters.
-
Sélectionnez le nom de votre cluster.
-
Sélectionnez l’onglet Observabilité.
-
Sélectionnez Surveiller le cluster.
-
Choisissez l'onglet Fonctionnalités pour afficher l'état et l'état de toutes les fonctionnalités.
AWS CLI :
# View capability status and health aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-ack# Look for issues in the health section
Causes courantes :
-
Autorisations IAM manquantes : le rôle de capacité ne dispose pas d'autorisations pour le service AWS
-
Mauvais espace de noms : ressources créées dans l'espace de noms sans IAMRoleSelector
-
Spécification de ressource non valide : vérifiez les conditions d'état des ressources pour détecter les erreurs de validation
-
Limitation de l'API : les limites de débit des AWS API sont atteintes
-
Webhooks d'admission : webhooks d'admission empêchant le contrôleur de corriger le statut des ressources
Vérifiez l'état de la ressource :
# Describe the resource to see conditions and events kubectl describe bucketmy-bucket-n default # Look for status conditions kubectl get bucketmy-bucket-n default -o jsonpath='{.status.conditions}' # View resource events kubectl get events --field-selector involvedObject.name=my-bucket-n default
Vérifiez les autorisations IAM :
# View the Capability Role's policies aws iam list-attached-role-policies --role-namemy-ack-capability-roleaws iam list-role-policies --role-namemy-ack-capability-role# Get specific policy details aws iam get-role-policy --role-namemy-ack-capability-role--policy-namepolicy-name
Ressources créées dans Kubernetes AWS mais non affichées
ACK suit uniquement les ressources qu'il crée via les manifestes Kubernetes. Pour gérer les AWS ressources existantes avec ACK, utilisez la fonctionnalité d'adoption.
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
Pour en savoir plus sur l'adoption des ressources, voirConcepts d'ACK.
Cross-account ressources non créées
Si aucune ressource n'est créée dans un AWS compte cible lors de l'utilisation des sélecteurs de rôle IAM, vérifiez la relation de confiance et IAMRoleSelector la configuration.
Vérifiez la relation de confiance :
# Check the trust policy in the target account role aws iam get-role --role-namecross-account-ack-role--query 'Role.AssumeRolePolicyDocument'
La politique de confiance doit permettre au rôle de capacité du compte source de l'assumer.
Confirmez IAMRoleSelector la configuration :
# List IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Describe specific selector kubectl describe iamroleselectormy-selector
Vérifiez l'alignement de l'espace de noms :
IAMRoleSelectors sont des ressources limitées à un cluster mais ciblent des espaces de noms spécifiques. Assurez-vous que vos ressources ACK se trouvent dans un espace de noms qui correspond au sélecteur IAMRoleSelector d'espace de noms :
# Check resource namespace kubectl get bucketmy-cross-account-bucket-nproduction# List all IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Check which namespace the selector targets kubectl get iamroleselectormy-selector-o jsonpath='{.spec.namespaceSelector}'
Vérifiez IAMRoleSelected l'état :
Vérifiez que le IAMRoleSelector a bien été mis en correspondance avec votre ressource en vérifiant la ACK.IAMRoleSelected condition :
# Check if IAMRoleSelector was matched kubectl get bucketmy-cross-account-bucket-nproduction-o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'
Si la condition est False ou absente, le sélecteur d'espace IAMRoleSelector de noms ne correspond pas à l'espace de noms de la ressource. Vérifiez que le sélecteur namespaceSelector correspond aux libellés d'espace de noms de votre ressource.
Vérifiez les autorisations relatives aux rôles de capacité :
Le rôle de capacité a besoin sts:AssumeRole et sts:TagSession autorisations pour le rôle de compte cible :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": [.replaceable]`"arn:aws:iam::444455556666:role/cross-account-ack-role"` } ] }
Pour une configuration détaillée entre comptes, voirConfigurer les autorisations ACK.
Étapes suivantes
-
Considérations relatives à l'ACK pour EKS- Considérations et meilleures pratiques relatives à l'ACK
-
Configurer les autorisations ACK- Configurer les autorisations IAM et les modèles multi-comptes
-
Concepts d'ACK- Comprendre les concepts ACK et le cycle de vie des ressources
-
Dépannage des fonctionnalités EKS- Conseils généraux de résolution des problèmes liés aux fonctionnalités