APIs descontinuadas do Kubernetes 1.25


Nesta página, explicamos como preparar clusters para upgrades para a versão 1.25 do GKE. É possível encontrar clientes de API fazendo chamadas para APIs descontinuadas removidas na versão 1.25 e atualizá-los para usar as APIs do GA. Para informações mais detalhadas, consulte o Guia de migração da API descontinuada do Kubernetes.

APIs removidas na versão 1.25

A maioria das APIs descontinuadas no Kubernetes versão 1.25 são APIs Beta anteriores que passaram por upgrade (por exemplo, v1beta1) para a versão GA (por exemplo, v1). A versão GA das APIs oferece garantias de compatibilidade de longo prazo e precisa ser usada no lugar das APIs Beta descontinuadas.

É possível usar a versão GA das APIs para interagir com todos os objetos das APIs que passaram por upgrade.

EndpointSlice

A versão Beta da API (discovery.k8s.io/v1beta1) de EndpointSlice não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.21.

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

    Campo Alterar
    endpoints[*].topology["kubernetes.io/hostname"] Use endpoints[*].nodeName.
    endpoints[*].topology["topology.kubernetes.io/zone"] Use endpoints[*].zone.
    endpoints[*].topology Substituído por endpoints[*].deprecatedTopology, que não é gravável na v1.

PodDisruptionBudget

A versão Beta da API (policy/v1beta1) de PodDisruptionBudget não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.21.

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

    Campo Alterar
    spec.selector Um valor vazio ({}) gravado em um policy/v1 PodDisruptionBudget seleciona todos os pods no namespace. Um valor não definido ainda não seleciona pods.

CronJob

A versão Beta da API (batch/v1beta1) de CronJob não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.21. Migre manifestos e clientes de API para usar a versão batch/v1 da API.

PodSecurityPolicy

A versão Beta da API (policy/v1beta1) de PodSecurityPolicy não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.21.

Para mais informações, consulte Descontinuação do PodSecurityPolicy.

RuntimeClass

A versão Beta da API (node.k8s.io/v1beta1) de RuntimeClass não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.20. Migre manifestos e clientes de API para usar a versão node.k8s.io/v1 da API.

Eventos

A versão Beta da API (events.k8s.io/v1beta1) de Events não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.19.

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

    Campo Alterar
    type Limitado a Normal e Warning.
    involvedObject Renomeada como regarding.
    action, reason, reportingController e reportingInstance Esses campos agora são obrigatórios para criar eventos.
    firstTimestamp Renomeada para deprecatedFirstTimestamp e não mais permitida em novos eventos. Use eventTime, em vez disso.
    lastTimestamp Renomeada para deprecatedLastTimestamp e não mais permitida em novos eventos. Use series.lastObservedTime.
    count Renomeada para deprecatedCount e não mais permitida em novos eventos. Use series.count, em vez disso.
    source.component Renomeada para deprecatedSource.component e não mais permitida em novos eventos. Use reportingController.
    source.host Renomeada para deprecatedSource.host e não mais permitida em novos eventos. Use reportingInstance, em vez disso.

HorizontalPodAutoscaler

A versão Beta da API (autoscaling/v2beta1) de HorizontalPodAutoscaler não é mais disponibilizada a partir da versão 1.25. Esta API foi descontinuada na versão 1.23. Migre manifestos e clientes de API para usar a versão autoscaling/v2 HorizontalPodAutoscaler da API.

Como preparar o upgrade para a versão 1.25

Não é necessário excluir nem recriar qualquer um dos objetos da API. Todos os objetos permanentes de APIs com upgrade para a verão GA 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.25. Para saber mais, consulte o Guia de migração de APIs descontinuadas do Kubernetes.

É possível conferir insights e recomendações de descontinuação para determinar se o cluster está usando APIs descontinuadas do Kubernetes 1.25. O GKE gera insights de descontinuação quando os user agents chamam APIs descontinuadas, não com base na configuração dos objetos do Kubernetes.

Encontrar clusters que usam APIs descontinuadas

Para saber quais clusters estão usando APIs descontinuadas, acesse os insights de descontinuação. Os insights de descontinuação também fornecem informações como quais clientes de API estão chamando as APIs descontinuadas no cluster.

Também é possível usar registros de auditoria para descobrir quais clientes estão fazendo chamadas para APIs descontinuadas.

Localizar clientes de API que fazem chamadas de gravação para APIs descontinuadas

Para clusters com a observabilidade do Google Cloud ativada, é possível usar a consulta do registro de auditoria da atividade do administrador a seguir para mostrar o uso de APIs descontinuadas por user agents que não são gerenciados pelo Google.

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

Substitua DEPRECATED_API_MINOR_VERSION pela versão secundária em que a API descontinuada foi removida, por exemplo, 1.22.

Os registros de auditoria de atividades do administrador são ativados automaticamente para clusters do GKE. Com essa consulta, os registros mostram os user agents que fazem chamadas de gravação para as APIs descontinuadas.

Localizar clientes de API que fazem chamadas de leitura para APIs descontinuadas

Por padrão, os registros de auditoria mostram apenas chamadas de gravação para as APIs descontinuadas. Para mostrar também chamadas de leitura para APIs descontinuadas, configure os registros de auditoria de acesso a dados.

Siga as instruções para configurar os registros de auditoria de acesso a dados com o console do Google Cloud. No console do Google Cloud, selecione a API Kubernetes Engine. Na guia "Tipos de registro" no painel de informações, selecione Admin Read e Data Read.

Com esses registros ativados, agora é possível usar a consulta original para ver chamadas de leitura e de gravação para as APIs descontinuadas.

Como fazer upgrade de componentes de terceiros

Os insights de descontinuação podem exibir resultados para agentes de terceiros que fazem chamadas para APIs descontinuadas no cluster.

Para resolver o problema de agentes de terceiros que chamam APIs descontinuadas, sugerimos as seguintes práticas recomendadas:

  1. Verifique com seu provedor de software de terceiros se há uma versão atualizada.
  2. Atualize o software de terceiros para a versão mais recente. Se não for possível fazer upgrade do software, teste se o upgrade do GKE para a versão em que as APIs descontinuadas foram removidas interrompe o serviço.

Recomendamos que você realize esse upgrade e o upgrade da versão do GKE em um cluster de preparo para monitorar interrupções antes de fazer upgrade dos clusters de produção.

Atualizar clusters afetados por descontinuação

Para fazer upgrade dos clusters afetados pelas descontinuações de uso, siga estas etapas:

  1. Verifique quais user agents usam as APIs descontinuadas nos registros.
  2. Atualize os user agents que usam as APIs descontinuadas para usar as versões compatíveis.
  3. Atualize qualquer software de terceiros que chame APIs descontinuadas para as versões mais recentes.
  4. Faça upgrade de um cluster de teste e teste o aplicativo em um ambiente de teste antes de fazer upgrade do cluster de produção. Isso reduz o risco de interrupções quando as APIs descontinuadas não estão mais disponíveis.
  5. Se não for possível atualizar um user agent afetado, faça upgrade de um cluster de teste separado para verificar se isso causa interrupções. Se o upgrade não causar interrupções, faça upgrade do cluster manualmente.
  6. Depois que você atualizar todos os user agents, o GKE aguardará até que ele não observe mais o uso de APIs descontinuadas por 30 dias e, em seguida, desbloqueará os upgrades automáticos. Os upgrades automáticos prosseguem de acordo com a programação de lançamentos.

Recursos

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