Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:[Alteração de Produto] Resolver problemas de expiração de token do ServiceAccount no Kubernetes 1.22+

Última atualização: Jun 27, 2026

Este tópico descreve o impacto, os detalhes e as soluções para a expiração de tokens do ServiceAccount em clusters Kubernetes 1.22+. No Kubernetes 1.22 e versões posteriores, os tokens do ServiceAccount têm validade de um ano, e o componente kubelet os atualiza periodicamente. No entanto, se uma aplicação utilizar uma versão do client-go anterior à v11.0.0 ou v0.15.0, o cliente não recarrega automaticamente o token atualizado. Isso pode causar erros de autenticação quando o token expirar.

Para aumentar a segurança, o Kubernetes 1.21 ativou por padrão o recurso BoundServiceAccountTokenVolume. Esse recurso impõe um tempo de expiração para o token, implementa um mecanismo de atualização automática e invalida os tokens após a exclusão do Pod associado. Quando uma aplicação usa o client-go nas versões v11.0.0, v0.15.0 ou superior, o kubelet atualiza o token periodicamente e o cliente o recarrega a partir do volume montado. Para garantir compatibilidade com versões anteriores, o Kubernetes oferece um período de carência de um ano, durante o qual tokens expirados ainda podem ser utilizados. Contudo, após esse período, clientes que utilizam uma versão do client-go anterior à v11.0.0 ou v0.15.0 não recarregarão o token automaticamente. A expiração do token resulta nos seguintes erros:

# The component log.
Error listing resources error=Unauthorized
# The access log of the Kubernetes API server of the cluster.
"Unable to authenticate the request" err="[invalid bearer token, Token has expired.]"

Reinicie o Pod do componente para forçar o client-go a ler o novo token.

Escopo do impacto

Esse problema afeta aplicações que utilizam uma versão do client-go anterior à v11.0.0 ou v0.15.0 em clusters Kubernetes 1.22+.

Impacto da expiração

  • Em clusters Kubernetes 1.22+, aplicações com uma versão do client-go anterior à v11.0.0 ou v0.15.0 apresentarão falhas de autenticação após o término do período de carência de um ano, pois não conseguem recarregar o token automaticamente.

  • Ao atualizar um cluster para o Kubernetes 1.22 ou superior, aplicações existentes com versões do client-go anteriores à v11.0.0 ou v0.15.0 deixarão de autenticar após um ano caso não sejam reiniciadas.

Soluções

Para aplicações que usam add-ons do ACK

Os add-ons do Container Service for Kubernetes (ACK) incluem versões mais recentes do client-go. Se sua aplicação utiliza um add-on do ACK, atualize-o para resolver essa questão.

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do cluster. Em seguida, no painel de navegação à esquerda, clique em Components and Add-ons.

  3. Na página Add-ons, localize o componente desejado e clique em Upgrade.

Para outras aplicações

Como solução de curto prazo, reinicie o Pod da aplicação para restaurar o serviço rapidamente. Para uma solução definitiva, atualize a biblioteca client-go da aplicação para a versão v11.0.0, v0.15.0 ou superior. Essa atualização permite que a aplicação recarregue automaticamente o token do ServiceAccount.