O uso excessivo do banco de dados etcd pode causar instabilidade no cluster e escassez de recursos, impedindo que os clusters do Google Kubernetes Engine (GKE) sejam escalonados de maneira eficaz.
Use este documento para saber como identificar clusters em que o uso do etcd está chegando ao limite e encontrar recomendações para liberar espaço, ajudando a garantir que o cluster permaneça estável.
Essas informações são importantes para administradores e operadores da plataforma responsáveis por manter a integridade e a escalonabilidade dos clusters do GKE. Para mais informações sobre as funções comuns e tarefas de exemplo que mencionamos no conteúdo do Google Cloud , consulte Funções e tarefas de usuário comuns do GKE.
Este documento aborda a solução de problemas de estabilidade do cluster relacionados ao uso elevado do etcd. Se você tiver um problema de escalonabilidade diferente, um dos seguintes documentos poderá ajudar:
Problemas com o escalonador automático de cluster:
- Para resolver problemas de adição de novos nós, consulte Resolver problemas de escalonamento automático de clusters.
- Para resolver problemas de nós subutilizados que não estão sendo removidos, consulte Resolver problemas de escalonamento automático de clusters que não estão reduzindo a escala vertical.
Problemas com o escalonador automático horizontal de pods: para resolver problemas com o escalonador automático horizontal de pods, consulte Resolver problemas com o escalonamento automático horizontal de pods.
Problemas de escalonamento do Autopilot: para mais informações sobre problemas específicos do Autopilot, incluindo aqueles relacionados ao escalonamento, consulte Solucionar problemas de clusters do Autopilot.
Identificar clusters em que o uso do etcd está chegando no limite
O GKE fornece insights e recomendações para o cenário em que o uso do etcd está se aproximando do limite. Você pode encontrar esses insights e recomendações das seguintes maneiras:
- Use o console do Google Cloud . Acesse a página Clusters do Kubernetes. Na coluna Notificações de clusters específicos, verifique a recomendação Libere espaço para reduzir o risco de instabilidade do cluster.
Use a CLI gcloud ou a API Recommender especificando o subtipo
ETCD_DB_USAGE_APPROACHING_LIMIT
do recomendador.Para consultar essa recomendação, execute o seguinte comando:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:ETCD_DB_USAGE_APPROACHING_LIMIT"
Para implementar essa recomendação, remova todos os dados desnecessários do etcd para liberar espaço. Isso pode envolver a exclusão de recursos antigos ou a remoção de objetos grandes do etcd. Para mais informações, consulte Planejar para grandes clusters do GKE.
Identificar clusters em que o uso de armazenamento por tipo de objeto está se aproximando do limite
O GKE fornece insights e recomendações para o cenário em que o tamanho total dos objetos etcd por tipo está se aproximando do limite. Você pode encontrar esses insights e recomendações das seguintes maneiras:
- Use o console do Google Cloud . Acesse a página Clusters do Kubernetes. Na coluna Notificações de clusters específicos, verifique a recomendação Reduzir o tamanho dos tipos de recursos.
Use a CLI gcloud ou a API Recommender especificando o subtipo
APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT
do recomendador.Para consultar essa recomendação, execute o seguinte comando:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT"
Para decidir quais objetos remover, use o kubectl para listá-los. Por exemplo, se os ConfigMaps estiverem se aproximando do limite de armazenamento, o comando a seguir vai gerar todos os ConfigMaps em todos os namespaces, ajudando você a identificar candidatos para exclusão:
kubectl get configmaps --all-namespaces > new_file.txt
Para implementar essa recomendação e liberar espaço, remova do armazenamento todos os objetos desnecessários dos tipos especificados. Esse processo pode envolver a exclusão de recursos antigos ou a remoção de objetos grandes do armazenamento. Para mais informações, consulte Planejar para grandes clusters do GKE.
A seguir
Se você não encontrar uma solução para seu problema na documentação, consulte Receber suporte para mais ajuda, incluindo conselhos sobre os seguintes tópicos:
- Abrir um caso de suporte entrando em contato com o Cloud Customer Care.
- Receber suporte da comunidade fazendo perguntas no StackOverflow e usando a tag
google-kubernetes-engine
para pesquisar problemas semelhantes. Você também pode participar do canal do Slack#kubernetes-engine
para receber mais suporte da comunidade. - Abrir bugs ou solicitações de recursos usando o Issue Tracker público.