Verworfene Kubernetes 1.22 APIs

Diese Seite enthält Informationen zu den verworfenen APIs im Kubernetes 1.22-Release. Weitere Informationen finden Sie in der Migrationsanleitung für verworfene Kubernetes APIs.

Entfernte APIs in 1.22

Die meisten verworfenen APIs in Kubernetes Version 1.22 sind frühere Beta APIs, die seitdem von der Betaversion (v1beta1) auf GA (v1, allgemeine Verfügbarkeit) umgestellt wurden. Die GA APIs bieten längerfristige Kompatibilitätsgarantien und sollten anstelle der verworfenen Beta APIs verwendet werden.

Sie können über die GA APIs mit allen vorhandenen Objekten interagieren.

Webhook-Ressourcen

Die Beta API-Version von MutatingWebhookConfiguration und ValidatingWebhookConfiguration wird seit Version 1.22 nicht mehr bereitgestellt.

  • Migrieren Sie Manifeste und API-Clients, um die API-Version admissionregistration.k8s.io/v1 zu verwenden.
  • In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:

    Feld Ändern
    webhooks[*].failurePolicy Die Standardeinstellung wurde von Ignore in Fail geändert.
    webhooks[*].matchPolicy Die Standardeinstellung wurde von Exact in Equivalent geändert.
    webhooks[*].timeoutSeconds Die Standardeinstellung wurde von 30s in 10s geändert.
    webhooks[*].sideEffects Der Standardwert wird entfernt und das Feld ist jetzt erforderlich. Nur None und NoneOnDryRun sind zulässig.
    webhooks[*].admissionReviewVersions Der Standardwert wurde entfernt und das Feld ist jetzt erforderlich (unterstützte Versionen für AdmissionReview sind v1 und v1beta1).
    webhooks[*].name Darf in der Liste für Objekte, die über admissionregistration.k8s.io/v1 erstellt wurden, nur einmal vorkommen.

CustomResourceDefinition

Die Beta API-Version von CustomResourceDefinition wird ab Version 1.22 nicht mehr bereitgestellt.

  • Migrieren Sie Manifeste und API-Clients, um die API-Version apiextensions.k8s.io/v1 zu verwenden.
  • In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:

    Feld Ändern
    spec.scope Die Standardeinstellung ist nicht mehr Namespaced. Der Wert muss explizit angegeben werden.
    spec.version Entfernt. Verwenden Sie stattdessen spec.versions.
    spec.validation Entfernt. Verwenden Sie stattdessen spec.versions[*].schema.
    spec.subresources Entfernt. Verwenden Sie stattdessen spec.versions[*].subresources.
    spec.additionalPrinterColumns Entfernt. Verwenden Sie stattdessen spec.versions[*].additionalPrinterColumns.
    spec.conversion.webhookClientConfig Verschoben nach spec.conversion.webhook.clientConfig.
    spec.conversion.conversionReviewVersions Verschoben nach spec.conversion.webhook.conversionReviewVersions.
    spec.versions[*].schema.openAPIV3Schema Wird jetzt beim Erstellen von v1-CustomResourceDefinition-Objekten benötigt und muss ein strukturelles Schema sein.
    spec.preserveUnknownFields Der Wert true ist beim Erstellen von v1-CustomResourceDefinition-Objekten nicht zulässig. Der Wert muss in Schemadefinitionen als x-kubernetes-preserve-unknown-fields: true angegeben werden.
    additionalPrinterColumns In additionalPrinterColumns-Elementen wurde das Feld JSONPath in jsonPath umbenannt.

APIService

Die Beta API-Version von APIService wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version apiregistration.k8s.io/v1 zu verwenden.

TokenReview

Die Beta API-Version von TokenReview wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version authentication.k8s.io/v1 zu verwenden.

SubjectAccessReview-Ressourcen

Die Beta API-Version von LocalSubjectAccessReview, SelfSubjectAccessReview und SubjectAccessReview wird ab Version 1.22 nicht mehr bereitgestellt.

  • Migrieren Sie Manifeste und API-Clients, um die API-Version authorization.k8s.io/v1 zu verwenden.
  • In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:

    Feld Ändern
    spec.group Wurde in spec.groups umbenannt.

CertificateSigningRequest

Die Beta API-Version von CertificateSigningRequest wird ab Version 1.22 nicht mehr bereitgestellt.

  • Migrieren Sie Manifeste und API-Clients, um die API-Version certificates.k8s.io/v1 zu verwenden.
  • In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:

    Feld Ändern
    spec.signerName Für API-Clients, die Zertifikate anfordern, ist dieses Feld erforderlich (siehe bekannte Kubernetes-Signer). Anfragen für kubernetes.io/legacy-unknown dürfen nicht über die certificates.k8s.io/v1 API erstellt werden.
    spec.usages Für API-Clients, die Zertifikate anfordern, ist dieses Feld erforderlich. Dieses Feld darf keine doppelten Werte und nur bekannte Verwendungen enthalten.
    status.conditions Für API-Clients, die Zertifikate genehmigen oder signieren, darf dieses Feld keine doppelten Typen enthalten.
    status.conditions[*].status Dieses Feld ist für API-Clients, die Zertifikate genehmigen oder signieren, erforderlich.
    status.certificate Für API-Clients, die Zertifikate genehmigen oder signieren, muss dieses Feld PEM-codiert sein und darf nur CERTIFICATE-Blöcke enthalten.

Lease

Die Beta API-Version von Lease wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version coordination.k8s.io/v1 zu verwenden.

Eingehender Traffic

Die Beta API-Versionen (extensions/v1beta1 und networking.k8s.io/v1beta1) von Ingress werden ab Version 1.22 nicht mehr bereitgestellt.

  • Migrieren Sie Manifeste und API-Clients, um die API-Version networking.k8s.io/v1 zu verwenden.
  • In der folgenden Tabelle werden die wichtigsten Änderungen der GA API-Version beschrieben:

    Feld Ändern
    spec.backend Wurde in spec.defaultBackend umbenannt.
    Back-End-serviceName Wurde in service.name umbenannt.
    servicePort Die numerischen Back-End-servicePort-Felder werden in service.port.number umbenannt. Die String-Back-End-servicePort-Felder werden in service.port.name umbenannt.
    pathType Jetzt für jeden angegebenen Pfad erforderlich. Der Wert kann Prefix, Exact oder ImplementationSpecific sein. Verwenden Sie ImplementationSpecific, um das nicht definierte v1beta1-Verhalten zu berücksichtigen.

IngressClass

Die Beta API-Version von IngressClass wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version networking.k8s.io/v1 zu verwenden.

RBAC-Ressourcen

Die Beta API-Version von ClusterRole, ClusterRoleBinding, Role und RoleBinding wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version rbac.authorization.k8s.io/v1 zu verwenden.

PriorityClass

Die Beta API-Version von PriorityClass wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version scheduling.k8s.io/v1 zu verwenden.

Speicherressourcen

Die Beta API-Version von CSIDriver, CSINode, StorageClass und VolumeAttachment wird ab Version 1.22 nicht mehr bereitgestellt. Migrieren Sie Manifeste und API-Clients, um die API-Version storage.k8s.io/v1 zu verwenden.

API-Clients identifizieren, die in verworfene APIs schreiben

Cluster, für die die Operations-Suite von Google Cloud aktiviert ist, können die folgende Abfrage für das Administratoraktivitätslog verwenden, um die Verwendung von 1.22 APIs durch Nutzer anzuzeigen, die nicht von Google verwaltet werden:

resource.type="k8s_cluster"
labels."k8s.io/removed-release"="1.22"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")

Upgrade auf Version 1.22 vorbereiten

Sie müssen Ihre API-Objekte nicht löschen und neu erstellen. Alle vorhandenen beibehaltenen API-Objekte können bereits mit den neuen API-Versionen gelesen und aktualisiert werden. Wir empfehlen Ihnen jedoch, Ihre Clients und Manifeste zu migrieren, bevor Sie ein Upgrade auf Kubernetes 1.22 durchführen. Weitere Informationen finden Sie im Abschnitt „Vorgehensweise“ der Migrationsanleitung für verworfene Kubernetes APIs.

Ressourcen

Weitere Informationen finden Sie in der OSS-Dokumentation für Kubernetes: