Berechtigungsfehler in Backup for GKE beheben

Auf dieser Seite werden Berechtigungsfehler beschrieben, die bei der Verwendung von Backup for GKE auftreten können. Außerdem werden Aspekte erläutert, die bei der Ausführung der Aktion zu berücksichtigen sind, und es wird beschrieben, wie Sie den Fehler beheben können.

Fehler 100010101: Fehler beim Sichern von PersistentVolumeClaim – IAM-Bindung für Mandantenprojekt fehlt

Der Fehler 100010101 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil für Ihr Mandantenprojekt keine Identity and Access Management-Bindung vorhanden ist. In diesem Fall wird die Fehlermeldung Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project angezeigt.

Backup for GKE erstellt Snapshots des nichtflüchtigen Speichers Ihres GKE-Clusters. Die Snapshots befinden sich in Ihrem Google Cloud Projekt, auch bekannt als das Nutzerprojekt, und Google Cloud erstellt sie in einem von ihm verwalteten Mandantenprojekt. Das Mandantenprojekt befindet sich in der Organisation google.com, getrennt von Ihrer eigenen Organisation.

Der Dienst-Agent im Mandantenprojekt benötigt bestimmte Berechtigungen, um den vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) zu verwenden, mit dem der nichtflüchtige Speicher verschlüsselt wird, auf den in der PersistentVolumeClaim Ihres Clusters verwiesen wird. Mit dieser Berechtigung werden die Snapshot-Daten verschlüsselt und entschlüsselt. Wenn dem service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für den CMEK Ihres Laufwerks fehlt, schlägt der Sicherungsvorgang fehl.

So beheben Sie diesen Fehler:

  1. Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen zum Ändern von IAM-Richtlinien für den Cloud Key Management Service-Schlüssel in der Google Cloud Konsole haben, z. B. roles/cloudkms.admin oder roles/owner.

  2. Suchen Sie den Compute Engine-Dienst-Agent des Mandantenprojekts anhand des Werts TENANT_PROJECT_NUMBER, der in der Meldung status reason Ihres fehlgeschlagenen Sicherungsvorgangs enthalten ist. Beispiel: service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  3. Suchen Sie die folgenden CMEK-Informationen, die für Ihre verschlüsselte Persistent Disk verwendet werden:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Speicherort: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

  4. Wenn Sie dem Compute Engine-Dienst-Agent des Mandantenprojekts die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK zuweisen möchten, führen Sie den Befehl gcloud kms keys add-iam-policy-binding mit der Google Cloud CLI aus:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • TENANT_PROJECT_NUMBER: die Mandantenprojektnummer, die Sie aus der status reason-Meldung Ihres fehlgeschlagenen Sicherungsvorgangs erhalten haben.

    Wenn der Befehl erfolgreich ist, sieht die Ausgabe so aus:

    - members:
    - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  5. Wiederholen Sie den Sicherungsvorgang. Wenn der Vorgang weiterhin nicht erfolgreich ist, wenden Sie sich an Cloud Customer Care.

Fehler 100010104: Fehler beim Sichern von PersistentVolumeClaim – Verstoß gegen die Einschränkung der Organisationsrichtlinie beim Erstellen des Snapshots

Der Fehler 100010104 tritt auf, wenn der Versuch, eine PersistentVolumeClaim zu sichern, aufgrund eines Verstoßes gegen eine Organisationsrichtlinie während der Snapshot-Erstellung fehlschlägt. In diesem Fall wird die Fehlermeldung Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot angezeigt.

Backup for GKE erstellt Snapshots des nichtflüchtigen Speichers Ihres GKE-Clusters. Die Snapshots befinden sich in Ihrem Google Cloud -Projekt, auch bekannt als Nutzerprojekt, und werden in einem von Google Cloudverwalteten Mandantenprojekt erstellt. Das Mandantenprojekt befindet sich in der Organisation google.com, getrennt von Ihrer eigenen Organisation.

Ihre Organisationsrichtlinie gibt vor, wo Sie Speicherressourcen erstellen können. Der Fehler Constraint constraints/compute.storageResourceUseRestrictions violated bedeutet, dass eine Ressource oder ein Snapshot gegen die Richtlinie verstößt, da sie in einem Mandantenprojekt erstellt wurde, das nicht Teil Ihrer zulässigen Organisationsstruktur ist. Da sich das Mandantenprojekt in der Organisation von Google befindet, fällt es nicht unter Ihre definierte Richtlinie, was zum Fehler bei der Sicherung führt.

So beheben Sie diesen Fehler:

  1. Suchen Sie die Organisationsrichtlinie, die die Einschränkung constraints/compute.storageResourceUseRestrictions implementiert. Weitere Informationen zum Aufrufen von Organisationsrichtlinien über die Google Cloud -Konsole finden Sie unter Organisationsrichtlinien aufrufen.

  2. Ändern Sie die constraints/compute.storageResourceUseRestrictions-Richtlinie so, dass der vom Backup for GKE verwendete folders/77620796932-Mandantenprojektordner in der Zulassungsliste enthalten ist.

  3. Speichern Sie die Richtlinienänderungen, nachdem Sie den Ordner auf die Zulassungsliste gesetzt haben.

  4. Testen Sie den Sicherungsvorgang noch einmal, nachdem die Organisationsrichtlinie aktualisiert und übernommen wurde. Das dauert in der Regel einige Minuten. Die Sicherung sollte ohne Verstoß gegen die Einschränkungen bei der Nutzung von Speicherressourcen erfolgen. Wenn der Vorgang weiterhin nicht erfolgreich ist, wenden Sie sich an Cloud Customer Care.

Fehler 100010106: PersistentVolumeClaim konnte nicht gesichert werden – Fehlende IAM-Bindung für den Backup for GKE-Dienst-Agent

Der Fehler 100010106 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil für Ihren Backup for GKE-Dienst-Agent keine IAM-Bindung (Identity and Access Management) vorhanden ist. In diesem Fall wird die Fehlermeldung Failed to backup PVC - Missing IAM binding for Backup for GKE service agent angezeigt.

Für Backup for GKE sind Berechtigungen erforderlich, um den vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) von BackupPlan zum Verschlüsseln und Entschlüsseln von nichtflüchtigen Speichern zu verwenden. Wenn dem Backup for GKE-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren BackupPlan-CMEK fehlt, schlagen Sicherungsvorgänge fehl.

So beheben Sie diesen Fehler:

  1. Ermitteln Sie den von Google verwalteten Backup for GKE-Dienst-Agent für Ihr Projekt. Beispiel: service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Sie können Ihre Projektnummer mit den folgenden Methoden ermitteln:

    • Verwenden Sie das Google Cloud Projekt-Dashboard in der Google Cloud Console.

    • Führen Sie den Befehl gcloud projects describe über die Google Cloud CLI aus:

      gcloud projects describe PROJECT_ID –format="value(projectNumber)"
      

      Ersetzen Sie PROJECT_ID durch den eindeutigen Namen Ihres Projekts.

  2. Ermitteln Sie die folgenden CMEK-Details:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Standort: Der Google Cloud -Standort, an dem sich Ihr BackupPlan-CMEK befindet. Beispiel: global oderus-central1.

  3. Um dem Backup for GKE-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK zu gewähren, führen Sie den Befehl gcloud kms keys add-iam-policy-binding mit der Google Cloud CLI aus:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • PROJECT_NUMBER: Ihre Google Cloud -Projektnummer.

  4. Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen (Identity and Access Management) für den Cloud KMS-Schlüssel haben. Beispiel: roles/cloudkms.admin oder roles/owner.

  5. Prüfen Sie, ob Sie die erteilten Berechtigungen haben. Suchen Sie in der Ausgabe des vorherigen gcloud kms keys add-iam-policy-binding-Befehls nach einem Eintrag, der dem folgenden ähnelt:

    -members:
    -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  6. Wiederholen Sie den Sicherungsvorgang, nachdem Sie die erforderlichen Berechtigungen erteilt haben. Wenn der Vorgang nicht erfolgreich abgeschlossen wird, wenden Sie sich an Cloud Customer Care.

Fehler 100010107: Fehler beim Sichern von PersistentVolumeClaim – Fehlendes IAM-Binding – Dienstkonto des Agents (KCP)

Der Fehler 100010107 tritt auf, wenn Sie versuchen, einen Backup for GKE-Sicherungsvorgang auszuführen und der Google Kubernetes Engine-Cluster-Dienst-Agent keinen Zugriff auf Ihren vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) hat. In diesem Fall wird die Meldung Failed to backup PVC - Missing IAM binding - agent service account (KCP) angezeigt.

Der Google Kubernetes Engine-Clusterdienst-Agent, in der Regel im Format service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com, ist unerlässlich, damit Ihr GKE-Cluster mit Google Cloud-Diensten interagieren kann. Wenn in Ihrem Sicherungsplan ein vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) verwendet wird. Dieser Dienstagent benötigt Berechtigungen zum Ver- und Entschlüsseln Ihrer Sicherungsdaten mit Ihrem CMEK. Wenn im Sicherungsplan die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK fehlt, schlagen Sicherungsvorgänge, die vom Cluster aus initiiert werden, mit dem Fehler permission denied fehl.

Führen Sie die folgenden Schritte zur Fehlerbehebung aus, um das Problem zu beheben:

  1. Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Ändern von IAM-Richtlinien für den Cloud Key Management Service-Schlüssel haben. Beispiel: cloudkms.admin oder roles/owner.

  2. Google Kubernetes Engine-Cluster-Dienst-Agent identifizieren Dieser Dienst-Agent wird automatisch von Google Cloud für Ihre GKE-Cluster erstellt und verwaltet. Beispiel: service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com Sie benötigen die Projektnummer, um das vollständige Dienstkonto zu erstellen. Sie können Ihre Projektnummer mit einer der folgenden Methoden ermitteln:

    • Verwenden Sie das Google Cloud Projekt-Dashboard in der Google Cloud Console.

    • Führen Sie den Befehl gcloud projects describe über die Google Cloud CLI aus:

      gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
      

      Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  3. Suchen Sie die folgenden CMEK-Informationen:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Speicherort: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

  4. Weisen Sie die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter auf CMEK-Ebene zu. Der Google Kubernetes Engine-Dienst-Agent benötigt Berechtigungen für Ihren Verschlüsselungsschlüssel. Wenn Sie die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK gewähren möchten, führen Sie den Befehl gcloud kms key add-iam-policy-binding mit der Google Cloud CLI aus:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • PROJECT_NUMBER: der Name des Projekts.

    Die Ausgabe sieht etwa so aus:

     - members:
     - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com
     role: roles/cloudkms.cryptoKeyEncrypterDecrypter
     ```
    
  5. Wiederholen Sie den Backup for GKE-Vorgang. Wenn der Vorgang weiterhin fehlschlägt, wenden Sie sich an Cloud Customer Care.

Fehler 100020101: Fehler beim Sichern von PersistentVolumeClaim – PersistentVolumeClaim an einen nicht unterstützten PersistentVolume-Typ gebunden

Der Fehler 100020101 tritt auf, wenn der Versuch, eine PersistentVolumeClaim zu sichern, fehlschlägt, weil die PersistentVolumeClaim an einen nicht unterstützten PersistentVolume-Typ gebunden ist. Der Fehler führt zu folgender Fehlermeldung: PersistentVolumeClaims are bound to PersistentVolumes of unsupported types and cannot be backed up.

Dieser Fehler tritt auf, wenn bei Ihrem Sicherung für GKE-Vorgang ein PersistentVolumeClaim gefunden wird, das an ein PersistentVolume gebunden ist, das einen Volumetyp verwendet, der von Sicherung für GKE nicht für die Datensicherung unterstützt wird. Sicherung für GKE unterstützt in erster Linie die Sicherung von Daten aus nichtflüchtigen Speichervolumes. Wenn ein PersistentVolumeClaim an ein PersistentVolume gebunden ist, das kein nichtflüchtiger Speicher ist, schlägt der Sicherungsvorgang für die Daten des PersistentVolumeClaim fehl.

Führen Sie die folgenden Schritte zur Fehlerbehebung aus, um das Problem zu beheben:

  1. Führen Sie den Befehl kubectl get pvc aus, um alle PersistentVolumeClaims und die daran gebundenen PersistentVolumes aufzulisten. Sehen Sie sich diese Liste an, um die PersistentVolumes zu ermitteln, die von nicht unterstützten Volume-Typen unterstützt werden.

    kubectl get pvc --all-namespaces -o wide
    
  2. Ermitteln Sie den Volumetyp des PersistentVolume, der von einem Volumetyp unterstützt wird, der von Backup for GKE nicht unterstützt wird, indem Sie den Befehl kubectl describe pv ausführen:

    kubectl describe pv PERSISTENT_VOLUME_NAME
    

    Ersetzen Sie Folgendes:

    PERSISTENT_VOLUME_NAME: Der Name von PersistentVolume, für das in der Ausgabe des vorherigen Schritts in Spalte VOLUME ein nicht unterstützter Volumetyp aufgeführt ist.

    Verwenden Sie in der Ausgabe die Felder Source und Driver, um Details zum Volume-Provisioner zu erhalten:

    • Bei unterstützten nichtflüchtigen Speichern: Die Ausgabe sieht ähnlich aus wie Source.Driver: pd.csi.storage.gke.io oder Source.Type:GCEPersistentDisk.

    • Bei nicht unterstützten Typen, die den Fehler verursachen: Die Ausgabe wäre ein nichtflüchtiger Speicher-Treiber, z. B. Source.Driver:filestore.csi.storage.gke.io.

  3. Verwenden Sie eine der folgenden Methoden, um den Fehler zu beheben:

    • Zu einem Persistent Disk-Volume migrieren: Wir empfehlen diese Methode für vollständige Datensicherungen. Wenn Sie die eigentlichen Volume-Daten sichern müssen, müssen Sie einen nichtflüchtigen Speicher verwenden. Dazu müssen Sie Ihre Daten vom nicht unterstützten Volume-Typ auf ein neues CSI-Volume für nichtflüchtige Speicher migrieren. Wenn Sie Unterstützung bei der Migration eines Persistent Disk-Volumes benötigen, wenden Sie sich an Cloud Customer Care.

    • Permissive Modus in Backup for GKE aktivieren: Diese Methode wird empfohlen, wenn für nicht unterstützte Volumes keine Datensicherung erforderlich ist. Wenn die Migration von Daten nicht möglich oder nicht erforderlich ist, z. B. wenn das Volume von einem externen Dienst unterstützt wird und Sie es während des Wiederherstellungsvorgangs wieder anhängen möchten, können Sie Ihren Sicherung für GKE-Sicherungsplan so konfigurieren, dass die Sicherung im permissiven Modus fortgesetzt wird. Weitere Informationen zum Aktivieren des moderaten Modus finden Sie unter Moderaten Modus in einem Sicherungsplan aktivieren.

  4. Wiederholen Sie den Backup for GKE-Vorgang. Je nach der Methode, die Sie zum Beheben des Fehlers ausgewählt haben, verhält sich der Backup for GKE-Vorgang so:

    • Wenn Sie zu einem Persistent Disk-Volume migriert sind, sollte die Sicherung für das Volume einschließlich seiner Daten erfolgreich sein.

    • Wenn Sie den moderaten Modus aktiviert haben, sollte die Sicherung erfolgreich sein. Die Daten für nicht unterstützte Volumes werden jedoch nicht gesichert.

Wenn der Vorgang weiterhin fehlschlägt, wenden Sie sich an Cloud Customer Care.

Fehler 100020104: Fehler beim Sichern von PersistentVolumeClaim – PersistentVolumeClaim nicht an ein PersistentVolume gebunden

Der Fehler 100020104 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil die PersistentVolumeClaim nicht an ein PersistentVolume gebunden ist. Der Fehler führt zu folgender Fehlermeldung: Failed to backup PVC - PVC Not Bound to a Persistent Volume.

Dieser Fehler tritt auf, wenn bei Ihrem Backup for GKE-Vorgang versucht wird, ein PersistentVolumeClaim zu sichern, das nicht erfolgreich an ein PersistentVolume gebunden ist. Ein PersistentVolumeClaim muss an ein PersistentVolume gebunden sein, bevor es von einer verarbeitenden Arbeitslast wie einem Pod verwendet und anschließend von Backup for GKE gesichert werden kann. Wenn sich die PersistentVolumeClaim weiterhin im Status Pending befindet, bedeutet das, dass keine geeignete PersistentVolume verfügbar ist oder nicht bereitgestellt oder gebunden werden kann. Dies führt dazu, dass der Sicherungsvorgang fehlschlägt. Ein häufiger Grund dafür, dass ein PersistentVolumeClaim nicht gebunden wird, ist, dass das zugehörige StorageClass den Bindungsmodus WaitForFirstConsumer verwendet, aber noch kein Pod oder eine andere Arbeitslast versucht, das PersistentVolumeClaim zu nutzen.

Führen Sie die folgenden Schritte zur Fehlerbehebung aus, um das Problem zu beheben:

  1. Führen Sie den Befehl kubectl get pvc aus, um den Status aller PersistentVolumeClaims im Cluster zu prüfen und die nicht gebundenen PersistentVolumeClaim zu ermitteln:

    kubectl get pvc --all-namespaces | grep `Pending`
    
  2. Nachdem Sie die PersistentVolumeClaim identifiziert haben, die nicht an eine PersistentVolume gebunden ist, rufen Sie Informationen zur ungebundenen PersistentVolumeClaim ab, indem Sie den Befehl kubectl describe pvc ausführen:

    kubectl describe pvc PVC_NAME -n NAMESPACE_NAME
    

    Ersetzen Sie Folgendes:

    • PVC_NAME: der Name des PersistentVolumeClaim, das nicht gesichert werden konnte.

    • NAMESPACE_NAME: Der Name des Namespace, in dem sich PersistentVolumeClaim befindet.

    Nachdem die Beschreibung angezeigt wird, können Sie anhand der Felder Status und Events feststellen, ob die PersistentVolumeClaim an eine PersistentVolume gebunden ist. Wenn Sie immer noch nicht feststellen können, warum die PersistentVolumeClaim nicht an eine PersistentVolume gebunden ist, oder das ermittelte Problem nicht beheben können, können Sie den moderaten Modus für Ihren Sicherungsplan aktivieren. Weitere Informationen zum Aktivieren des moderaten Modus finden Sie unter Moderaten Modus in einem Sicherungsplan aktivieren.

Nächste Schritte