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.
AWSSupport-TroubleshootEbsCsiDriversForEks
Description
Le AWSSupport-TroubleshootEbsCsiDriversForEks runbook permet de résoudre les problèmes liés au montage de volumes Amazon Elastic Block Store dans Amazon Elastic Kubernetes Service (Amazon EKS) et aux problèmes liés au pilote Amazon EBS Container Storage Interface (CSI)
Important
Le pilote Amazon EBS CSI qui s'exécute actuellement n' AWS Fargate est pas pris en charge.
Fonctionnement
Le runbook AWSSupport-TroubleshootEbsCsiDriversForEks exécute les étapes de haut niveau suivantes :
-
Vérifie si le cluster Amazon EKS cible existe et s'il est actif.
-
Déploie les ressources d'authentification nécessaires pour effectuer des appels d'API Kubernetes selon que l'addon est Amazon ou autogéré. EKS-managed
-
Effectue des contrôles de santé et des diagnostics du contrôleur Amazon EBS CSI.
-
Exécute des contrôles d'autorisations IAM sur les rôles de nœud et les rôles de compte de service.
-
Diagnostique les problèmes persistants liés à la création de volumes pour le module d'application spécifié.
-
Vérifie la planification nœud à module et examine les événements liés au module.
-
Collecte les journaux Kubernetes et d'applications pertinents et les télécharge dans le compartiment Amazon S3 spécifié.
-
Effectue des contrôles de santé des nœuds et vérifie la connectivité avec les points de terminaison Amazon EC2.
-
Examine les pièces jointes des dispositifs de blocage de volume persistants et l'état de montage.
-
Nettoie l'infrastructure d'authentification créée lors du dépannage.
-
Génère un rapport de dépannage complet combinant tous les résultats du diagnostic.
Note
-
Le mode d'authentification du cluster Amazon EKS doit être défini sur
APIouAPI_AND_CONFIG_MAP. Nous vous recommandons d'utiliser l'entrée Amazon EKS Access. Le runbook nécessite des autorisations de contrôle d' Role-based accès Kubernetes (RBAC) pour effectuer les appels d'API nécessaires. -
Si vous ne spécifiez pas de rôle IAM pour la fonction Lambda (
LambdaRoleArnparamètre), l'automatisation crée un rôle nomméAutomation-K8sProxy-Role-<ExecutionId>dans votre compte. Ce rôle inclut les politiques géréesAWSLambdaBasicExecutionRoleetAWSLambdaVPCAccessExecutionRole. -
Certaines étapes de diagnostic nécessitent que les nœuds de travail Amazon EKS soient des instances gérées par Systems Manager. Si les nœuds ne sont pas des instances gérées par Systems Manager, les étapes nécessitant un accès à Systems Manager sont ignorées, mais les autres vérifications se poursuivent.
-
L'automatisation inclut une étape de nettoyage qui supprime les ressources de l'infrastructure d'authentification. Cette étape de nettoyage s'exécute même en cas d'échec des étapes précédentes, ce qui permet d'éviter la création de ressources orphelines sur votre AWS compte.
Exécutez cette automatisation (console)
Type de document
Automatisation
Propriétaire
Amazon
Plateformes
/
Autorisations IAM requises
Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
-
ec2:DescribeIamInstanceProfileAssociations -
ec2:DescribeInstanceStatus -
ec2:GetEbsEncryptionByDefault -
eks:DescribeAddon -
eks:DescribeAddonVersions -
eks:DescribeCluster -
iam:GetInstanceProfile -
iam:GetOpenIDConnectProvider -
iam:GetRole -
iam:ListOpenIDConnectProviders -
iam:SimulatePrincipalPolicy -
s3:GetBucketLocation -
s3:GetBucketPolicyStatus -
s3:GetBucketPublicAccessBlock -
s3:GetBucketVersioning -
s3:ListBucket -
s3:ListBucketVersions -
ssm:DescribeInstanceInformation -
ssm:GetAutomationExecution -
ssm:GetDocument -
ssm:ListCommandInvocations -
ssm:ListCommands -
ssm:SendCommand -
ssm:StartAutomationExecution
Instructions
Pour configurer l'automatisation, procédez comme suit :
-
Créez un rôle d'automatisation SSM
TroubleshootEbsCsiDriversForEks-SSM-Roledans votre compte. Vérifiez que la relation d'approbation contient la politique suivante. -
Associez la politique ci-dessous au rôle IAM pour accorder les autorisations requises pour effectuer les actions spécifiées sur les ressources spécifiées.
-
Si vous prévoyez de charger des journaux d'exécution et de ressources dans un compartiment Amazon S3 situé dans AWS la même région, remplacez-les par
arn:{partition}:s3:::BUCKET_NAME/*les vôtres dansOptionalRestrictPutObjects.-
Le compartiment Amazon S3 doit pointer vers le compartiment Amazon S3 correct si vous le sélectionnez lors de l'exécution
S3BucketNamede SSM. -
Cette autorisation est facultative si vous ne spécifiez pas
S3BucketName -
Le compartiment Amazon S3 doit être privé et se trouver dans la même AWS région que celle où vous exécutez l'automatisation SSM.
-
-
-
Accordez les autorisations requises pour le RBAC (contrôle d'Role-Based accès) du cluster Amazon EKS. L'approche recommandée consiste à créer une entrée d'accès dans votre cluster Amazon EKS.
Dans la console Amazon EKS, accédez à votre cluster. Pour les entrées d'accès Amazon EKS, vérifiez que votre configuration d'accès est définie sur
API_AND_CONFIG_MAPouAPI. Pour savoir comment configurer le mode d'authentification pour les entrées d'accès, voir Configuration des entrées d'accès.Choisissez Créer une entrée d'accès.
-
Pour l'ARN principal IAM, sélectionnez le rôle IAM que vous avez créé pour l'automatisation SSM à l'étape précédente.
-
Pour Type, sélectionnez
Standard.
-
-
Ajoutez une politique d'accès :
-
Pour Access scope, sélectionnez
Cluster. -
Pour Nom de la politique, sélectionnez
AmazonEKSAdminViewPolicy.
Choisissez Add policy (Ajouter la politique).
Si vous n'utilisez pas d'entrées d'accès pour gérer les autorisations de l'API Kubernetes, vous devez les mettre à jour
aws-authConfigMap et créer une liaison de rôle entre votre utilisateur ou votre rôle IAM. Assurez-vous que votre entité IAM dispose des autorisations d'API Kubernetes en lecture seule suivantes :-
GET
/apis/apps/v1/namespaces/{namespace}/deployments/{name} -
GET
/apis/apps/v1/namespaces/{namespace}/replicasets/{name} -
GET
/apis/apps/v1/namespaces/{namespace}/daemonsets/{name} -
GET
/api/v1/nodes/{name} -
GET
/api/v1/namespaces/{namespace}/serviceaccounts/{name} -
GET
/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} -
GET
/api/v1/persistentvolumes/{name} -
GET
/apis/storage.k8s.io/v1/storageclasses/{name} -
GET
/api/v1/namespaces/{namespace}/pods/{name} -
GET
/api/v1/namespaces/{namespace}/pods -
GET
/api/v1/namespaces/{namespace}/pods/{name}/log -
GET
/api/v1/events
-
-
Exécuter l'automatisation AWSSupport-TroubleshootEbsCsiDriversForEks (console)
-
Sélectionnez Execute automation (Exécuter l'automatisation).
-
Pour les paramètres d'entrée, entrez les informations suivantes :
-
AutomationAssumeRole (Facultatif) :
-
Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle Gestion des identités et des accès AWS (IAM) qui permet à SSM Automation d'effectuer les actions en votre nom. Le rôle doit être ajouté à votre entrée d'accès au cluster Amazon EKS ou à votre autorisation RBAC pour autoriser les appels d'API Kubernetes.
-
Type :
AWS::IAM::Role::Arn -
Exemple :
TroubleshootEbsCsiDriversForEks-SSM-Role
-
-
EksClusterName:
-
Description : nom du cluster Amazon Elastic Kubernetes Service (Amazon EKS) cible.
-
Type :
String
-
-
ApplicationPodName:
-
Description : nom du module d'application Kubernetes présentant des problèmes avec le pilote Amazon EBS CSI.
-
Type :
String
-
-
ApplicationNamespace:
-
Description : espace de noms Kubernetes pour le pod d'applications rencontrant des problèmes avec le pilote Amazon EBS CSI.
-
Type :
String
-
-
EbsCsiControllerDeploymentName(Facultatif) :
-
Description : (Facultatif) Le nom de déploiement du module de contrôleur Amazon EBS CSI.
-
Type :
String -
Valeur par défaut :
ebs-csi-controller
-
-
EbsCsiControllerNamespace(Facultatif) :
-
Description : (Facultatif) L'espace de noms Kubernetes pour le pod de contrôleur Amazon EBS CSI.
-
Type :
String -
Valeur par défaut :
kube-system
-
-
S3BucketName (Facultatif) :
-
Description : (Facultatif) Le nom du compartiment Amazon S3 cible dans lequel les journaux de dépannage seront chargés.
-
Type :
AWS::S3::Bucket::Name
-
-
LambdaRoleArn (Facultatif) :
-
Description : (Facultatif) L'ARN du rôle IAM qui permet à la AWS Lambda fonction d'accéder aux AWS services et ressources requis.
-
Type :
AWS::IAM::Role::Arn
-
Sélectionnez Exécuter.
-
-
Une fois terminé, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution.
Références
Systems Manager Automation
Pour plus d'informations sur Amazon EBS CSI Driver, consultez Amazon EBS CSI Driver.