API obsolètes de Kubernetes 1.22

Cette page fournit des informations sur les API obsolètes dans la version 1.22 de Kubernetes. Pour en savoir plus, consultez le guide de migration des API obsolètes de Kubernetes.

API supprimées dans la version 1.22

La plupart des API obsolètes dans la version 1.22 de Kubernetes sont d'anciennes API bêta qui sont passées depuis de la version bêta (v1beta1) à la disponibilité générale (v1). Les API en disponibilité générale offrent des garanties de compatibilité à long terme et doivent être utilisées à la place des API bêta obsolètes.

Vous pouvez interagir avec tous les objets existants à l'aide des API en disponibilité générale.

Ressources Webhook

La version d'API bêta de MutatingWebhookConfiguration et ValidatingWebhookConfiguration n'est plus diffusée à partir de la version 1.22.

  • Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API admissionRegistration.k8s.io/v1.
  • Reportez-vous au tableau suivant qui décrit les modifications notables apportées à la version de l'API en disponibilité générale :

    Champ Modifier
    webhooks[*].failurePolicy La valeur par défaut est passée de Ignore à Fail.
    webhooks[*].matchPolicy La valeur par défaut est passée de Exact à Equivalent.
    webhooks[*].timeoutSeconds La valeur par défaut est passée de 30s à 10s.
    webhooks[*].sideEffects La valeur par défaut est supprimée et le champ est désormais obligatoire. Seuls None et NoneOnDryRun sont autorisés.
    webhooks[*].admissionReviewVersions La valeur par défaut est supprimée et le champ est désormais obligatoire (les versions autorisées pour AdmissionReview sont v1 et v1beta1).
    webhooks[*].name Le nom doit être unique dans la liste des objets créés via admissionregistration.k8s.io/v1.

CustomResourceDefinition

La version d'API bêta de CustomResourceDefinition n'est plus diffusée à partir de la version 1.22.

  • Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API apiextensions.k8s.io/v1.
  • Reportez-vous au tableau suivant qui décrit les modifications notables apportées à la version de l'API en disponibilité générale :

    Champ Modifier
    spec.scope N'est plus défini par défaut sur Namespaced. La valeur doit être spécifiée explicitement.
    spec.version Supprimé. Utilisez plutôt spec.versions.
    spec.validation Supprimé. Utilisez plutôt spec.versions[*].schema.
    spec.subresources Supprimé. Utilisez plutôt spec.versions[*].subresources.
    spec.additionalPrinterColumns Supprimé. Utilisez plutôt spec.versions[*].additionalPrinterColumns.
    spec.conversion.webhookClientConfig Déplacé vers spec.conversion.webhook.clientConfig.
    spec.conversion.conversionReviewVersions Déplacé vers spec.conversion.webhook.conversionReviewVersions.
    spec.versions[*].schema.openAPIV3Schema Désormais requis pour créer des objets CustomResourceDefinition v1, il doit s'agir d'un schéma de structure.
    spec.preserveUnknownFields La valeur true n'est pas autorisée lors de la création d'objets CustomResourceDefinition v1. La valeur doit être spécifiée dans les définitions de schéma en tant que x-kubernetes-preserve-unknown-fields: true.
    additionalPrinterColumns Dans les éléments additionalPrinterColumns, le champ JSONPath a été renommé en jsonPath.

APIService

La version d'API bêta de APIService n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API apiregistration.k8s.io/v1.

TokenReview

La version d'API bêta de TokenReview n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API authentication.k8s.io/v1.

Ressources SubjectAccessReview

La version d'API bêta de LocalSubjectAccessReview, SelfSubjectAccessReview et SubjectAccessReview n'est plus diffusée à partir de la version 1.22.

  • Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API authorization.k8s.io/v1.
  • Reportez-vous au tableau suivant qui décrit les modifications notables apportées à la version de l'API en disponibilité générale :

    Champ Modifier
    spec.group Renommé en spec.groups.

CertificateSigningRequest

La version d'API bêta de CertificateSigningRequest n'est plus diffusée à partir de la version 1.22.

  • Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API certificates.k8s.io/v1.
  • Reportez-vous au tableau suivant qui décrit les modifications notables apportées à la version de l'API en disponibilité générale :

    Champ Modifier
    spec.signerName Pour les clients API exigeant des certificats, ce champ est obligatoire (voir signataires Kubernetes connus), et la création de requêtes pour kubernetes.io/legacy-unknown n'est pas autorisée via l'API certificates.k8s.io/v1.
    spec.usages Pour les clients API exigeant des certificats, ce champ est obligatoire. Ce champ ne peut pas contenir de valeurs en double et ne doit contenir que des utilisations connues.
    status.conditions Pour les clients API qui approuvent ou signent des certificats, ce champ ne peut pas contenir de types en double.
    status.conditions[*].status Pour les clients API qui approuvent ou signent des certificats, ce champ est désormais obligatoire.
    status.certificate Pour les clients API qui approuvent ou signent des certificats, ce champ doit être encodé au format PEM et ne contenir que des blocs CERTIFICATE.

Lease

La version d'API bêta de Lease n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API coordination.k8s.io/v1.

Ingress

Les versions d'API bêta (extensions/v1beta1 et networking.k8s.io/v1beta1) de Ingress ne sont plus diffusées à partir de la version 1.22.

  • Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API networking.k8s.io/v1.
  • Reportez-vous au tableau suivant qui décrit les modifications notables apportées à la version de l'API en disponibilité générale :

    Champ Modifier
    spec.backend Renommé en spec.defaultBackend.
    Backend serviceName Renommé en service.name.
    servicePort Les champs servicePort de backend de types numériques sont renommés en service.port.number. Les champs servicePort de backend de type chaîne sont renommés en service.port.name.
    pathType Désormais requis pour chaque chemin d'accès spécifié. La valeur peut être Prefix, Exact ou ImplementationSpecific. Pour correspondre au comportement v1beta1 non défini, utilisez ImplementationSpecific.

IngressClass

La version d'API bêta de IngressClass n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API networking.k8s.io/v1.

Ressources RBAC

La version d'API bêta de ClusterRole, ClusterRoleBinding, Role et RoleBinding n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API rbac.authorization.k8s.io/v1.

PriorityClass

La version d'API bêta de PriorityClass n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API scheduling.k8s.io/v1.

Ressources de stockage

La version d'API bêta de CSIDriver, CSINode, StorageClass et VolumeAttachment n'est plus diffusée à partir de la version 1.22. Migrez les fichiers manifestes et les clients API pour qu'ils utilisent la version d'API storage.k8s.io/v1.

Localiser les clients API qui écrivent des données dans des API obsolètes

Les clusters pour lesquels la suite Google Cloud Operations est activée peuvent utiliser la requête de journal d'activité d'administration suivante pour montrer l'utilisation d'API 1.22 par des utilisateurs non gérés par Google :

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

Préparer la mise à jour vers la version 1.22

Vous n'avez pas besoin de supprimer, ni de recréer les objets API. Tous les objets API persistants existants peuvent déjà être lus et mis à jour à l'aide des nouvelles versions d'API. Toutefois, nous vous recommandons de migrer vos clients et vos fichiers manifestes avant de passer à Kubernetes 1.22. Pour en savoir plus, consultez la section "Comment procéder" du guide de migration des API obsolètes de Kubernetes.

Resources

Pour plus d'informations, consultez la documentation Open Source de Kubernetes :