

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# `AWSSupport-TroubleshootEbsCsiDriversForEks`
<a name="automation-awssupport-troubleshoot-ebs-csi-drivers-for-eks"></a>

 **Beschreibung** 

 Das `AWSSupport-TroubleshootEbsCsiDriversForEks` Runbook hilft bei der Behebung von Problemen mit Amazon Elastic Block Store-Volume-Mounts in Amazon Elastic Kubernetes Service (Amazon EKS) und Amazon EBS Container Storage Interface (CSI) -Treiberproblemen 

**Wichtig**  
Derzeit wird der Amazon EBS CSI-Treiber, auf dem ausgeführt AWS Fargate wird, nicht unterstützt.

 **Wie funktioniert es?** 

 Das Runbook `AWSSupport-TroubleshootEbsCsiDriversForEks` führt die folgenden allgemeinen Schritte aus: 
+ Überprüft, ob der Amazon EKS-Zielcluster vorhanden ist und sich im aktiven Zustand befindet.
+ Stellt die erforderlichen Authentifizierungsressourcen für Kubernetes-API-Aufrufe bereit, je nachdem, ob das Addon von Amazon EKS verwaltet oder selbst verwaltet wird.
+ Führt Integritätsprüfungen und Diagnosen für den Amazon EBS CSI-Controller durch.
+ Führt IAM-Berechtigungsprüfungen für Knotenrollen und Dienstkontorollen durch.
+ Diagnostiziert dauerhafte Probleme bei der Volume-Erstellung für den angegebenen Anwendungs-Pod.
+ Überprüft die node-to-pod Planung und untersucht Pod-Ereignisse.
+ Sammelt relevante Kubernetes- und Anwendungsprotokolle und lädt sie in den angegebenen Amazon S3 S3-Bucket hoch.
+ Führt Knotenzustandsprüfungen durch und verifiziert die Konnektivität mit Amazon EC2 EC2-Endpunkten.
+ Überprüft persistente Volume Block-Geräteanhänge und den Montagestatus.
+ Bereinigt die Authentifizierungsinfrastruktur, die während der Fehlerbehebung erstellt wurde.
+ Generiert einen umfassenden Bericht zur Fehlerbehebung, in dem alle Diagnoseergebnisse zusammengefasst sind.

**Anmerkung**  
Der Authentifizierungsmodus des Amazon EKS-Clusters muss entweder auf `API` oder eingestellt sein`API_AND_CONFIG_MAP`. Wir empfehlen, den Amazon EKS Access-Eintrag zu verwenden. Das Runbook benötigt Kubernetes-Berechtigungen zur rollenbasierten Zugriffskontrolle (RBAC), um die erforderlichen API-Aufrufe durchzuführen.
Wenn Sie keine IAM-Rolle für die Lambda-Funktion (`LambdaRoleArn`Parameter) angeben, erstellt die Automatisierung eine Rolle, die `Automation-K8sProxy-Role-<ExecutionId>` in Ihrem Konto benannt ist. Diese Rolle umfasst die verwalteten Richtlinien `AWSLambdaBasicExecutionRole` und. `AWSLambdaVPCAccessExecutionRole`
Für einige Diagnoseschritte müssen die Amazon EKS-Worker-Knoten von Systems Manager verwaltete Instances sein. Wenn es sich bei den Knoten nicht um von Systems Manager verwaltete Instanzen handelt, werden Schritte, für die Systems Manager Manager-Zugriff erforderlich ist, übersprungen, andere Prüfungen werden jedoch fortgesetzt.
Die Automatisierung umfasst einen Bereinigungsschritt, bei dem die Ressourcen der Authentifizierungsinfrastruktur entfernt werden. Dieser Bereinigungsschritt wird auch dann ausgeführt, wenn die vorherigen Schritte fehlschlagen, wodurch verhindert wird, dass Ressourcen in Ihrem Konto verwaist sind. AWS 

 [Führen Sie diese Automatisierung aus (Konsole)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootEbsCsiDriversForEks) 

**Art des Dokuments**

Automatisierung

**Eigentümer**

Amazon

**Plattformen**

/

**Erforderliche IAM-Berechtigungen**

Der `AutomationAssumeRole` Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.
+ `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`

 **Anweisungen** 

Gehen Sie wie folgt vor, um die Automatisierung zu konfigurieren:

1. Erstellen Sie eine SSM-Automatisierungsrolle `TroubleshootEbsCsiDriversForEks-SSM-Role` in Ihrem Konto. Überprüfen Sie, dass die Vertrauensstellung die folgende Richtlinie enthält.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Fügen Sie der IAM-Rolle die folgende Richtlinie hinzu, um die erforderlichen Berechtigungen für die Ausführung der angegebenen Aktionen auf den angegebenen Ressourcen zu gewähren.
   + Wenn Sie erwarten, Ausführungs- und Ressourcenprotokolle in derselben AWS Region in den Amazon S3 S3-Bucket hochzuladen, ersetzen Sie `arn:{partition}:s3:::BUCKET_NAME/*` diese durch Ihre in`OptionalRestrictPutObjects`.
     + Der Amazon S3 S3-Bucket sollte auf den richtigen Amazon S3 S3-Bucket verweisen, wenn Sie `S3BucketName` in SSM-Ausführung auswählen.
     + Diese Berechtigung ist optional, wenn Sie sie nicht angeben `S3BucketName`
     + Der Amazon S3 S3-Bucket muss privat sein und sich in derselben AWS Region befinden, in der Sie die SSM-Automatisierung ausführen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "OptionalRestrictPutObjects",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "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"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SetupK8sApiProxyForEKSActions",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:CreateStack",
                   "cloudformation:DeleteStack",
                   "cloudformation:DescribeStacks",
                   "cloudformation:UpdateStack",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:DescribeRouteTables",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeVpcs",
                   "eks:DescribeCluster",
                   "iam:CreateRole",
                   "iam:DeleteRole",
                   "iam:GetRole",
                   "iam:TagRole",
                   "iam:UntagRole",
                   "lambda:CreateFunction",
                   "lambda:DeleteFunction",
                   "lambda:GetFunction",
                   "lambda:InvokeFunction",
                   "lambda:ListTags",
                   "lambda:TagResource",
                   "lambda:UntagResource",
                   "lambda:UpdateFunctionCode",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams",
                   "logs:ListTagsForResource",
                   "logs:PutLogEvents",
                   "logs:PutRetentionPolicy",
                   "logs:TagResource",
                   "logs:UntagResource",
                   "ssm:DescribeAutomationExecutions",
                   "tag:GetResources",
                   "tag:TagResources"
               ],
               "Resource": "*"
           },
           {
               "Sid": "PassRoleToAutomation",
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": [
                   "arn:aws:iam::*:role/TroubleshootEbsCsiDriversForEks-SSM-Role",
                   "arn:aws:iam::*:role/Automation-K8sProxy-Role-*"
               ],
               "Condition": {
                   "StringLikeIfExists": {
                       "iam:PassedToService": [
                           "lambda.amazonaws.com",
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           },
           {
               "Sid": "AttachRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:AttachRolePolicy",
                   "iam:DetachRolePolicy"
               ],
               "Resource": "*",
               "Condition": {
                   "StringLikeIfExists": {
                       "iam:ResourceTag/AWSSupport-SetupK8sApiProxyForEKS": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. Erteilen Sie die erforderlichen Berechtigungen für Amazon EKS-Cluster RBAC (Role-Based Access Control). Der empfohlene Ansatz besteht darin, einen Access-Eintrag in Ihrem Amazon EKS-Cluster zu erstellen.

    Navigieren Sie in der Amazon EKS-Konsole zu Ihrem Cluster. Stellen Sie für Amazon EKS-Zugriffseinträge sicher, dass Ihre Zugriffskonfiguration auf `API_AND_CONFIG_MAP` oder eingestellt ist`API`. Schritte zur Konfiguration des Authentifizierungsmodus für Zugriffseinträge finden Sie unter [Zugangseinträge einrichten](https://docs.aws.amazon.com//eks/latest/userguide/setting-up-access-entries.html). 

   Wählen Sie **Zugriffseintrag erstellen** aus.
   + Wählen Sie für den *IAM-Prinzipal-ARN* die IAM-Rolle aus, die Sie im vorherigen Schritt für die SSM-Automatisierung erstellt haben.
   + Wählen Sie als *Typ* die Option aus `Standard`.

1. Fügen Sie eine Zugriffsrichtlinie hinzu:
   + Wählen Sie als *Zugriffsbereich* die Option aus`Cluster`.
   + Wählen Sie als *Richtlinienname* die Option aus`AmazonEKSAdminViewPolicy`.

   Wählen Sie **Richtlinie hinzufügen** aus.

   Wenn Sie keine Zugriffseinträge zur Verwaltung von Kubernetes-API-Berechtigungen verwenden, müssen Sie die aktualisieren `aws-auth` ConfigMap und eine Rollenbindung zwischen Ihrem IAM-Benutzer oder Ihrer IAM-Rolle erstellen. Stellen Sie sicher, dass Ihre IAM-Entität über die folgenden schreibgeschützten Kubernetes-API-Berechtigungen verfügt:
   + 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`

1. [Führen Sie die Automatisierung aus (Konsole) AWSSupport-TroubleshootEbsCsiDriversForEks ](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEbsCsiDriversForEks/description)

1. Wählen Sie **Execute automation (Automatisierung ausführen)**.

1. Geben Sie für die Eingabeparameter Folgendes ein:
   + **AutomationAssumeRole (Fakultativ):**
     + Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, die es SSM Automation ermöglicht, die Aktionen in Ihrem Namen durchzuführen. Die Rolle muss Ihrem Amazon EKS-Clusterzugriffseintrag oder Ihrer RBAC-Berechtigung hinzugefügt werden, um Kubernetes-API-Aufrufe zuzulassen.
     + Typ: `AWS::IAM::Role::Arn`
     + Beispiel: `TroubleshootEbsCsiDriversForEks-SSM-Role`
   + **EksClusterName:**
     + Beschreibung: Der Name des Amazon Elastic Kubernetes Service (Amazon EKS) -Zielclusters.
     + Typ: `String`
   + **ApplicationPodName:**
     + Beschreibung: Der Name des Kubernetes-Anwendungs-Pods, der Probleme mit dem Amazon EBS CSI-Treiber hat.
     + Typ: `String`
   + **ApplicationNamespace:**
     + Beschreibung: Der Kubernetes-Namespace für den Anwendungs-Pod hat Probleme mit dem Amazon EBS CSI-Treiber.
     + Typ: `String`
   + **EbsCsiControllerDeploymentName(Optional):**
     + Beschreibung: (Optional) Der Bereitstellungsname für den Amazon EBS CSI-Controller-Pod.
     + Typ: `String`
     + Standard: `ebs-csi-controller`
   + **EbsCsiControllerNamespace(Optional):**
     + Beschreibung: (Optional) Der Kubernetes-Namespace für den Amazon EBS CSI-Controller-Pod.
     + Typ: `String`
     + Standard: `kube-system`
   + **S3 (optional)BucketName :**
     + Beschreibung: (Optional) Der Name des Amazon S3 S3-Ziel-Buckets, in den die Fehlerbehebungsprotokolle hochgeladen werden.
     + Typ: `AWS::S3::Bucket::Name`
   + **LambdaRoleArn (Optional):**
     + Beschreibung: (Optional) Der ARN der IAM-Rolle, der der AWS Lambda Funktion den Zugriff auf die erforderlichen AWS Dienste und Ressourcen ermöglicht.
     + Typ: `AWS::IAM::Role::Arn`

   Wählen Sie **Ausführen aus**.

1. Wenn der Vorgang abgeschlossen ist, finden Sie im Abschnitt *Outputs* die detaillierten Ergebnisse der Ausführung.

**Referenzen**

Systems Manager Automation
+ [Führen Sie diese Automatisierung aus (Konsole)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootEbsCsiDriversForEks/description)
+ [Führen Sie eine Automatisierung aus](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [Eine Automatisierung einrichten](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support Sie Automatisierungs-Workflows](https://aws.amazon.com/premiumsupport/technology/saw/)

Weitere Informationen zum Amazon EBS CSI-Treiber finden Sie unter [Amazon EBS CSI-Treiber](https://docs.aws.amazon.com//eks/latest/userguide/ebs-csi.html).