APIs obsoletas do Kubernetes 1.22

Nesta página, você encontra informações sobre as APIs obsoletas da versão do Kubernetes 1.22. Para informações mais detalhadas, consulte o Guia de migração da API obsoleta do Kubernetes.

APIs removidas na versão 1.22

A maioria das APIs obsoletas na versão 1.22 do Kubernetes são APIs Beta anteriores que passaram da versão Beta (v1beta1) para disponibilidade geral (v1). As APIs do GA fornecem garantias de compatibilidade de longo prazo e precisam ser usadas no lugar das APIs Beta obsoletas.

Todos os objetos existentes podem interagir com as APIs do GA.

Recursos de webhook

A versão Beta da API de MutatingWebhookConfiguration e ValidatingWebhookConfiguration não é mais veiculada a partir da versão 1.22.

  • Migre manifestos e clientes de API para usar a versão da API admissionregistration.k8s.io/v1.
  • Consulte a tabela a seguir que descreve as principais mudanças na versão da API GA:

    Campo Mudar
    webhooks[*].failurePolicy O padrão foi alterado de Ignore para Fail.
    webhooks[*].matchPolicy O padrão foi alterado de Exact para Equivalent.
    webhooks[*].timeoutSeconds O padrão foi alterado de 30s para 10s.
    webhooks[*].sideEffects O valor padrão é removido e o campo agora é obrigatório. Somente None e NoneOnDryRun são permitidos.
    webhooks[*].admissionReviewVersions O valor padrão foi removido e o campo agora é obrigatório. As versões compatíveis para AdmissionReview são v1 e v1beta1.
    webhooks[*].name Precisa ser exclusivo na lista para objetos criados com admissionregistration.k8s.io/v1.

CustomResourceDefinition

A versão Beta da API do CustomResourceDefinition não é mais veiculada a partir da versão 1.22.

  • Migrar manifestos e clientes de API para usar a versão da API apiextensions.k8s.io/v1
  • Consulte a tabela a seguir que descreve as principais mudanças na versão da API GA:

    Campo Mudar
    spec.scope O padrão não é mais Namespaced. O valor precisa ser explicitamente especificado.
    spec.version Removida. Use spec.versions.
    spec.validation Removida. Use spec.versions[*].schema.
    spec.subresources Removida. Use spec.versions[*].subresources.
    spec.additionalPrinterColumns Removida. Use spec.versions[*].additionalPrinterColumns.
    spec.conversion.webhookClientConfig Movida para spec.conversion.webhook.clientConfig.
    spec.conversion.conversionReviewVersions Movida para spec.conversion.webhook.conversionReviewVersions.
    spec.versions[*].schema.openAPIV3Schema Agora, é necessário ao criar objetos CustomResourceDefinition v1 e precisa ser um esquema estrutural.
    spec.preserveUnknownFields O valor true não é permitido ao criar objetos de v1 CustomResourceDefinition. O valor precisa ser especificado nas definições do esquema como x-kubernetes-preserve-unknown-fields: true.
    additionalPrinterColumns Em additionalPrinterColumns itens, o campo JSONPath foi renomeado para jsonPath.

APIService

A versão Beta da API APIService não é mais exibida a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão da API apiregistration.k8s.io/v1.

TokenReview

A versão Beta da API TokenReview não é mais exibida a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão da API authentication.k8s.io/v1.

Recursos SubjectAccessReview

A versão Beta da API de LocalSubjectAccessReview, SelfSubjectAccessReview e SubjectAccessReview não é mais veiculada a partir da versão 1.22.

  • Migre manifestos e clientes da API para usar a versão da API authorization.k8s.io/v1.
  • Consulte a tabela a seguir que descreve as principais mudanças na versão da API GA:

    Campo Mudar
    spec.group Renomeada como spec.groups.

CertificateSigningRequest

A versão Beta da API do CertificateSigningRequest não é mais veiculada a partir da versão 1.22.

  • Migre manifestos e clientes de API para usar a versão da API certificates.k8s.io/v1.
  • Consulte a tabela a seguir que descreve as principais mudanças na versão da API GA:

    Campo Mudar
    spec.signerName Para clientes de API que solicitam certificados, este campo é obrigatório (consulte signatários do Kubernetes conhecidos), e as solicitações para kubernetes.io/legacy-unknown não podem ser criadas por meio da API certificates.k8s.io/v1. de dados.
    spec.usages Para clientes de API que solicitam certificados, esse campo é obrigatório. Este campo não pode conter valores duplicados e só pode conter usos conhecidos.
    status.conditions Para clientes de API que aprovam ou assinam certificados, esse campo não pode conter tipos duplicados.
    status.conditions[*].status Para clientes de API que aprovam ou assinam certificados, esse campo agora é obrigatório.
    status.certificate Para clientes de API que aprovam ou assinam certificados, esse campo precisa ser codificado em PEM e conter apenas blocos CERTIFICATE.

Lease

A versão Beta da API do Lease não é mais veiculada a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão da API coordination.k8s.io/v1.

Entrada

As versões da API Beta (extensions/v1beta1 e networking.k8s.io/v1beta1) do Ingress não são mais veiculadas a partir da versão 1.22.

  • Migre manifestos e clientes de API para usar a versão da API networking.k8s.io/v1.
  • Consulte a tabela a seguir que descreve as principais mudanças na versão da API GA:

    Campo Mudar
    spec.backend Renomeada como spec.defaultBackend.
    back-end serviceName Renomeada como service.name.
    servicePort Os campos numéricos de back-end servicePort foram renomeados para service.port.number. Os campos servicePort de back-end de string foram renomeados como service.port.name.
    pathType Agora, é necessário para cada caminho especificado. O valor pode ser: Prefix, Exact ou ImplementationSpecific. Para corresponder ao comportamento v1beta1 indefinido, use ImplementationSpecific.

IngressClass

A versão Beta da API IngressClass não é mais exibida a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão da API networking.k8s.io/v1

Recursos do RBAC

A versão Beta da API de ClusterRole, ClusterRoleBinding, Role e RoleBinding não é mais veiculada a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão rbac.authorization.k8s.io/v1 da API.

PriorityClass

A versão Beta da API do PriorityClass não é mais veiculada a partir da versão 1.22. Migre manifestos e clientes da API para usar a versão da API scheduling.k8s.io/v1.

Recursos de armazenamento

A versão Beta da API CSIDriver, CSINode, StorageClass e VolumeAttachment não é mais veiculada a partir da versão 1.22. Migre manifestos e clientes de API para usar a versão da API storage.k8s.io/v1.

Como localizar clientes de API que estejam gravando em APIs obsoletas

Clusters com o pacote de operações do Google Cloud ativado podem usar a seguinte consulta de registro de atividades do administrador para mostrar o uso de APIs 1.22 por usuários que não são gerenciados pelo 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:")

Como preparar o upgrade para a versão 1.22

Não é necessário excluir nem recriar qualquer um dos objetos da API. Todos os objetos permanentes atuais da API já podem ser lidos e atualizados usando as novas versões da API. No entanto, recomendamos que você migre seus clientes e manifestos antes de fazer o upgrade para o Kubernetes 1.22. Saiba mais na seção "O que fazer" do Guia de migração da API obsoleta do Kubernetes.

Recursos

Há mais informações disponíveis na documentação do OSS Kubernetes: