Auf dieser Seite werden systembezogene Fehler beschrieben, die bei der Verwendung von Sicherung für GKE auftreten können. Außerdem werden Aspekte erläutert, die beim Sichern von Ressourcen zu berücksichtigen sind, und Schritte zur Fehlerbehebung.
Fehler 100020102: Strenger permissiver Modus – CRD konnte nicht gesichert werden – Nicht unterstützte v1beta1
-API-Version
Der Fehler 100020102
tritt auf, wenn der Versuch, ein CustomResourceDefinition
zu sichern, das ursprünglich als apiextensions.k8s.io/v1beta1
-Version angewendet wurde, fehlschlägt, weil es das strukturelle Schema nicht enthält, das in der apiextensions.k8s.io/v1
-API-Version erforderlich ist. Dieser Fehler führt zur folgenden Fehlermeldung:
Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version
.
Dieser Fehler tritt auf, weil die apiextensions.k8s.io/v1
API-Version in Google Kubernetes Engine-Version 1.22 entfernt wurde. Weitere Informationen zum Entfernen von APIs für GKE-Version 1.22 finden Sie unter API-Entfernungen für GKE v1.22.
Verhalten von Sicherungsvorgängen im nicht moderaten Modus
Im nicht permissiven Modus oder in einem strengen Sicherungsplan schlägt der Sicherungsvorgang fehl, wenn eine Ressource gefunden wird, die nicht gesichert werden kann, z. B. eine CustomResourceDefinition
, die mit der v1beta1
API erstellt wurde. Dieser Fehler tritt auf, weil der Ressource das von der v1
API erforderliche strukturelle Schema fehlt. Das Vorhandensein dieses CustomResourceDefinition
wird als kritischer Fehler betrachtet, da es möglicherweise nicht korrekt in einem neueren Cluster wiederhergestellt wird.
So beheben Sie diesen Fehler:
Ermitteln Sie das problematische
CustomResourceDefinition
mit dem Befehlkubectl get crd
:kubectl get crd CRD_NAME
Ersetzen Sie
CRD_NAME
durch den Namen desCustomResourceDefinition
aus Ihrer Fehlermeldung.Prüfen Sie in der YAML-Ausgabe, ob
CustomResourceDefinition
korrekt von dervbeta1
API in diev1
API konvertiert wurde. Suchen Sie dazu nach den folgenden Bedingungen:spec.versions
: Suchen Sie diespec.versions
-Bedingung, indem Sie jede Version durchgehen, die unter dem Feldspec.versions
aufgeführt ist. Wenn für eines derspec.versions
das Feldschema.openAIV3Schema
fehlt, ist für die entsprechende Version kein strukturelles Schema fürCustomResourceDefinition
definiert.status.conditions
: Suchen Sie die Bedingungstatus.conditions
, indem Sie die Bedingungtype:NonStructuralSchema
finden. Wenn diestatus
vonstatus.conditions
gleichtrue
ist, wird explizit bestätigt, dass das Schema nicht strukturell ist.
So aktualisieren Sie die
CustomResourceDefinition
- auf diev1
-API-Version:Bearbeiten Sie die vorhandene
CustomResourceDefinition
, um sie mit demv1
-Standard kompatibel zu machen. Fügen Sie dazu ein strukturelles Schema hinzu, das jedes Feld und seinen Typ in der benutzerdefinierten Ressource definiert. Weitere Informationen zum Hinzufügen eines strukturellen Schemas finden Sie unter Strukturelles Schema angeben.Wenden Sie das kompatible
v1
-Manifest auf Ihren Cluster an.
Wenn das Upgrade erfolgreich ist, versuchen Sie es noch einmal mit der Sicherung. Andernfalls können Sie das Problem mit einer der folgenden Methoden beheben:
Löschen Sie die
CustomResourceDefinition
mit dem Befehlkubectl delete crd
, wenn dieCustomResourceDefinition
nicht im Cluster verwendet wird.kubectl delete crd CRD_NAME
Ersetzen Sie
CRD_NAME
durch den Namen desCustomResourceDefinition
, den Sie löschen möchten.Aktivieren Sie den moderaten Modus für den Sicherungsplan. Dadurch kann Sicherung für GKE die Ressource, einschließlich
CustomResourceDefinitions
in derv1beta1
API-Version, überspringen und mit dem Rest des Sicherungsvorgangs fortfahren. Weitere Informationen zum Aktivieren des moderaten Modus finden Sie unter Moderaten Modus in einem Sicherungsplan aktivieren.
Wiederholen Sie den Sicherungsvorgang. Wenn der Vorgang weiterhin fehlschlägt, wenden Sie sich an Cloud Customer Care.