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 umpolicy/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
ouevents.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
eWarning
.involvedObject
Renomeada como regarding
.action
,reason
,reportingController
ereportingInstance
Esses campos agora são obrigatórios para criar eventos. firstTimestamp
Renomeada para deprecatedFirstTimestamp
e não mais permitida em novos eventos. UseeventTime
, em vez disso.lastTimestamp
Renomeada para deprecatedLastTimestamp
e não mais permitida em novos eventos. Useseries.lastObservedTime
.count
Renomeada para deprecatedCount
e não mais permitida em novos eventos. Useseries.count
, em vez disso.source.component
Renomeada para deprecatedSource.component
e não mais permitida em novos eventos. UsereportingController
.source.host
Renomeada para deprecatedSource.host
e não mais permitida em novos eventos. UsereportingInstance
, 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:
- Verifique com seu provedor de software de terceiros se há uma versão atualizada.
- 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:
- Verifique quais user agents usam as APIs descontinuadas nos registros.
- Atualize os user agents que usam as APIs descontinuadas para usar as versões compatíveis.
- Atualize qualquer software de terceiros que chame APIs descontinuadas para as versões mais recentes.
- 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.
- 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.
- 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:
- Blog do Kubernetes: remoções e mudanças importantes na versão 1.25 do Kubernetes (em inglês)
- Notas de lançamento do Kubernetes 1.25
- Guia de migração da API obsoleta do Kubernetes