Wie kann ich Probleme beheben, wenn ich AWS Secrets Manager in Amazon EKS integriere?
Ich versuche, AWS Secrets Manager mit Amazon Elastic Kubernetes Service (Amazon EKS) zu integrieren, aber ich erhalte eine Fehlermeldung.
Kurzbeschreibung
Sie können eine Fehlermeldung erhalten, wenn Ihre Pods bei der Integration von AWS Secrets Manager mit Amazon EKS nicht in den Status „Running“ wechseln. Um dieses Problem zu beheben, überprüfen Sie die Protokolle der Secrets-Store-Container-Storage-Interface-Treiber-Pods (CSI), um festzustellen, ob Pods nicht funktionieren.
Auflösung
Anzeige der Secrets-Store-CSI-Treiber-Pods:
kubectl --namespace=kube-system get pods -l "app=secrets-store-csi-driver"
Anzeige der Protokolle aus den Secrets-Store-CSI-Pods:
kubectl --namespace=kube-system logs -f -l "app=secrets-store-csi-driver"
Die folgenden Protokolle zeigen, dass die einzelnen Pods gut funktionieren:
I1120 20:21:19.135834 1 secrets-store.go:74] Driver: secrets-store.csi.k8s.io I1120 20:21:19.135857 1 secrets-store.go:75] Version: v0.2.0, BuildTime: 2021-08-12-18:55 I1120 20:21:19.135868 1 secrets-store.go:76] Provider Volume Path: /etc/kubernetes/secrets-store-csi-providers I1120 20:21:19.135874 1 secrets-store.go:77] GRPC supported providers will be dynamically created I1120 20:21:19.135895 1 driver.go:80] "Enabling controller service capability" capability="CREATE_DELETE_VOLUME" I1120 20:21:19.135912 1 driver.go:90] "Enabling volume access mode" mode="SINGLE_NODE_READER_ONLY" I1120 20:21:19.135922 1 driver.go:90] "Enabling volume access mode" mode="MULTI_NODE_READER_ONLY" I1120 20:21:19.135938 1 main.go:172] starting manager I1120 20:21:19.136210 1 server.go:111] Listening for connections on address: //csi/csi.sock I1120 20:21:18.956092 1 exporter.go:33] metrics backend: prometheus
Hinweis: Pods, die dieselben Aktionen ausführen, werden als doppelte Einträge angezeigt.
Wenn die SecretProviderClass im VolumeMount nicht im selben Namensraum wie der Pod existiert, erhalten Sie den folgenden Fehler:
* Warning FailedMount 3s (x4 over 6s) kubelet, kind-control-plane MountVolume.SetUp failed for volume "secrets-store-inline" : rpc error: code = Unknown desc = failed to get secretproviderclass default/aws, error: secretproviderclasses.secrets-store.csi.x-k8s.io "aws" not found
Die SecretProviderClass muss im selben Namensraum wie der Pod existieren.
Der Secrets-Store-CSI-Treiber wird als Daemonset bereitgestellt. Wenn die CSI-Treiber-Pods nicht auf dem Knoten ausgeführt werden, wird der folgende Fehler angezeigt:
* Warning FailedMount 1s (x4 over 4s) kubelet, kind-control-plane MountVolume.SetUp failed for volume "secrets-store-inline" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name secrets-store.csi.k8s.io not found in the list of registered CSI drivers
Wenn der Knoten mit einem Makel behaftet ist, fügen Sie im Daemonset des Secrets Store CSI Driver eine Toleranz für diesen Makel hinzu.
Prüfen Sie, ob Knotenselektoren vorhanden sind, die die Secrets-Store-CSI-Treiber-Pods am Knoten hindern:
kubectl --namespace=kube-system describe pods -l "app=secrets-store-csi-driver" | grep Node-Selectors*
Rufen Sie die Labels ab, die mit den Worker-Knoten in Ihrem Pod verbunden sind:
kubectl get node --selector=kubernetes.io/os=linux
Vergleichen Sie die Ausgaben der vorangegangenen Befehle, um sicherzustellen, dass die Bezeichnungen mit den Werten des Knotenselektors übereinstimmen.
Überprüfen Sie, ob der CSI-Treiber für den Cluster bereitgestellt wurde. Alle Pods sollten sich im Status „Running“ befinden.
Führen Sie den folgenden Befehl aus:
kubectl get pods -l app=secrets-store-csi-driver -n kube-system
-oder-
kubectl get daemonset csi-secrets-store-secrets-store-csi-driver -n kube-system
Beispielausgabe:
kubectl get csidriver NAME ATTACHREQUIRED PODINFOONMOUNT MODES AGE secrets-store.csi.k8s.io false true Ephemeral 110m
Die vorhergehende Ausgabe zeigt, dass der Treiber für den Cluster bereitgestellt wurde. Wenn der Secrets-store.csi.k8s.io nicht gefunden wird, installieren Sie den Treiber neu.
Wenn die Dateien, die die SecretProviderClass eingezogen hat, größer als 4 Mebibyte (MiB) sind, erhalten Sie möglicherweise **FailedMount-**Warnungen mit einer Meldung, die Folgendes enthält:grpc: erhaltende Meldung größer als max. Sie können den Treiber so konfigurieren, dass er Antworten von mehr als 4 MiB akzeptiert. Um größere Antworten zu akzeptieren, geben Sie --max-call-recv-msg-size=size in Bytes für den Secrets Store Container im csi-secrets-store-Daemonset an.
Hinweis: Ersetzen Sie die Größe in Bytes durch die Größe, die der Treiber akzeptieren soll.
Wenn Sie weiterhin Probleme haben, überprüfen Sie die Protokollereignisse in chronologischer Reihenfolge, um festzustellen, ob weitere Fehler aufgetreten sind:
kubectl get events -n kube-system --sort-by='.metadata.creationTimestamp'

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr