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
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 wird, nicht unterstützt. AWS Fargate
Wie funktioniert es?
Das Runbook AWSSupport-TroubleshootEbsCsiDriversForEks führt die folgenden allgemeinen Schritte aus:
-
Überprüft, ob der Amazon EKS-Zielcluster existiert und sich im aktiven Zustand befindet.
-
Stellt die erforderlichen Authentifizierungsressourcen für Kubernetes-API-Aufrufe bereit, je nachdem, ob es sich bei dem Addon um Amazon handelt oder ob es sich um ein selbstverwaltetes Addon handelt. EKS-managed
-
Führt Zustandsprüfungen und Diagnosen des Amazon EBS CSI-Controllers durch.
-
Führt IAM-Berechtigungsprüfungen für Knoten- und Dienstkontorollen durch.
-
Diagnostiziert anhaltende Probleme bei der Volume-Erstellung für den angegebenen Anwendungs-Pod.
-
Überprüft die Planung von Knoten zu Pod und untersucht Pod-Ereignisse.
-
Sammelt relevante Kubernetes- und Anwendungsprotokolle und lädt sie in den angegebenen Amazon S3-Bucket hoch.
-
Führt Knotenzustandsprüfungen durch und überprüft die Konnektivität mit Amazon EC2-Endpunkten.
-
Überprüft persistente Volume Block-Geräteanhänge und den Montagestatus.
-
Bereinigt die Authentifizierungsinfrastruktur, die bei der Problembehandlung erstellt wurde.
-
Generiert einen umfassenden Problembehandlungsbericht, in dem alle Diagnoseergebnisse zusammengefasst sind.
Anmerkung
-
Der Authentifizierungsmodus des Amazon EKS-Clusters muss auf entweder
APIoder eingestellt seinAPI_AND_CONFIG_MAP. Wir empfehlen die Verwendung von Amazon EKS Access Entry. Das Runbook benötigt Kubernetes Role-based Access Control (RBAC) -Berechtigungen, um die erforderlichen API-Aufrufe durchzuführen. -
Wenn Sie keine IAM-Rolle für die Lambda-Funktion (
LambdaRoleArnParameter) angeben, erstellt die Automatisierung eine Rolle, die in Ihrem Konto benannt ist.Automation-K8sProxy-Role-<ExecutionId>Diese Rolle umfasst die verwalteten RichtlinienAWSLambdaBasicExecutionRoleund.AWSLambdaVPCAccessExecutionRole -
Für einige Diagnoseschritte muss es sich bei den Amazon EKS-Worker-Knoten um vom System Manager verwaltete Instances handeln. Wenn es sich bei den Knoten nicht um von Systems Manager verwaltete Instances handelt, werden Schritte, für die Systems Manager-Zugriff erforderlich ist, übersprungen, andere Prüfungen werden jedoch fortgesetzt.
-
Die Automatisierung umfasst einen Bereinigungsschritt, bei dem Ressourcen für die Authentifizierungsinfrastruktur entfernt werden. Dieser Bereinigungsschritt wird auch dann ausgeführt, wenn die vorherigen Schritte fehlschlagen. Dadurch werden verwaiste Ressourcen in Ihrem Konto vermieden. AWS
Führen Sie diese Automatisierung aus (Konsole)
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
Folgen Sie diesen Schritten, um die Automatisierung zu konfigurieren:
-
Erstellen Sie eine SSM-Automatisierungsrolle
TroubleshootEbsCsiDriversForEks-SSM-Rolein Ihrem Konto. Überprüfen Sie, dass die Vertrauensstellung die folgende Richtlinie enthält. -
Hängen Sie die unten stehende Richtlinie an die IAM-Rolle an, um die erforderlichen Berechtigungen zum Ausführen der angegebenen Aktionen für die angegebenen Ressourcen zu gewähren.
-
Wenn Sie erwarten, Ausführungs- und Ressourcenprotokolle in den Amazon S3-Bucket in derselben AWS Region hochzuladen, ersetzen Sie
arn:{partition}:s3:::BUCKET_NAME/*diese durch Ihre inOptionalRestrictPutObjects.-
Der Amazon S3-Bucket sollte auf den richtigen Amazon S3-Bucket verweisen, wenn Sie
S3BucketNamebei der SSM-Ausführung auswählen. -
Diese Berechtigung ist optional, wenn Sie nichts angeben
S3BucketName -
Der Amazon S3-Bucket muss privat sein und sich in derselben AWS Region befinden, in der Sie die SSM-Automatisierung ausführen.
-
-
-
Gewähren Sie die erforderlichen Berechtigungen für den Amazon EKS-Cluster RBAC (Role-Based Access Control). Der empfohlene Ansatz besteht darin, einen Zugriffseintrag 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_MAPoder gesetzt istAPI. Schritte zum Konfigurieren des Authentifizierungsmodus für Zugriffseinträge finden Sie unter Zugriffseinträge einrichten.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.
-
-
Fügen Sie eine Zugriffsrichtlinie hinzu:
-
Wählen Sie für Zugriffsumfang 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 der Kubernetes-API-Berechtigungen verwenden, müssen Sie die aktualisieren
aws-authConfigMap 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
-
-
Führen Sie die Automatisierung aus (Konsole) AWSSupport-TroubleshootEbsCsiDriversForEks
-
Wählen Sie Execute automation (Automatisierung ausführen).
-
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 auszufü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, bei dem Probleme mit dem Amazon EBS-CSI-Treiber auftreten.
-
Typ:
String
-
-
ApplicationNamespace:
-
Beschreibung: Der Kubernetes-Namespace für den Anwendungs-Pod, der Probleme mit dem Amazon EBS-CSI-Treiber hat.
-
Typ:
String
-
-
EbsCsiControllerDeploymentName(Fakultativ):
-
Beschreibung: (Optional) Der Bereitstellungsname für den Amazon EBS-CSI-Controller-Pod.
-
Typ:
String -
Standard:
ebs-csi-controller
-
-
EbsCsiControllerNamespace(Fakultativ):
-
Beschreibung: (Optional) Der Kubernetes-Namespace für den Amazon EBS-CSI-Controller-Pod.
-
Typ:
String -
Standard:
kube-system
-
-
S3BucketName (Fakultativ):
-
Beschreibung: (Optional) Der Name des Amazon S3-Ziel-Buckets, in den die Protokolle zur Fehlerbehebung hochgeladen werden.
-
Typ:
AWS::S3::Bucket::Name
-
-
LambdaRoleArn (Fakultativ):
-
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.
-
-
Wenn Sie fertig sind, finden Sie im Abschnitt Ausgaben die detaillierten Ergebnisse der Ausführung.
Referenzen
Systems Manager Automation
Weitere Informationen zum Amazon EBS CSI-Treiber finden Sie unter Amazon EBS CSI-Treiber.