A utilização elevada da base de dados etcd pode causar instabilidade do cluster e escassez de recursos que impedem o dimensionamento eficaz dos seus clusters do Google Kubernetes Engine (GKE).
Use este documento para saber como identificar clusters onde a utilização do etcd está a aproximar-se do limite e encontrar recomendações para libertar espaço, o que ajuda a garantir que o cluster permanece estável.
Estas informações são importantes para os administradores e os operadores da plataforma responsáveis por manter o estado e a escalabilidade dos clusters do GKE. Para mais informações sobre as funções comuns e tarefas de exemplo que referimos no Google Cloud conteúdo, consulte o artigo Funções de utilizador e tarefas comuns do GKE.
Este documento aborda a resolução de problemas de estabilidade do cluster relacionados com a elevada utilização do etcd. Se tiver um problema de escalabilidade diferente, um dos seguintes documentos pode ajudar:
Problemas com o escalador automático do cluster:
- Para resolver problemas relacionados com o motivo pelo qual não estão a ser adicionados novos nós, consulte o artigo Resolva problemas relacionados com o facto de o escalador automático de clusters não estar a aumentar a escala.
- Para resolver problemas relacionados com a não remoção de nós subutilizados, consulte o artigo Resolva problemas relacionados com a não redução do redimensionador automático de clusters.
Problemas com o redimensionador automático horizontal de pods: para resolver problemas que impedem o funcionamento do redimensionador automático horizontal de pods, consulte o artigo Resolva problemas de redimensionamento automático horizontal de pods.
Problemas de escalabilidade do Autopilot: para mais informações sobre problemas específicos do Autopilot, incluindo os relacionados com a escalabilidade, consulte o artigo Resolva problemas de clusters do Autopilot.
Identifique clusters onde a utilização do etcd está a aproximar-se do limite
O GKE fornece estatísticas e recomendações para o cenário em que a utilização do etcd se está a aproximar do limite. Pode encontrar estas estatísticas e recomendações das seguintes formas:
- Use a Google Cloud consola. Aceda à página Clusters do Kubernetes. Na coluna Notificações para clusters específicos, verifique se existe a recomendação Liberte espaço para reduzir o risco de instabilidade do cluster.
Use a CLI gcloud ou a API Recommender especificando o subtipo do recomendador
ETCD_DB_USAGE_APPROACHING_LIMIT
.Para consultar esta 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 esta recomendação, remova todos os dados desnecessários do etcd para libertar espaço. Isto pode envolver a eliminação de recursos antigos ou a remoção de objetos grandes do etcd. Para mais informações, consulte o artigo Planeie clusters do GKE grandes.
Identifique clusters onde a utilização do armazenamento por tipo de objeto está a aproximar-se do limite
O GKE fornece estatísticas e recomendações para o cenário em que o tamanho total dos objetos etcd por tipo se aproxima do limite. Pode encontrar estas estatísticas e recomendações das seguintes formas:
- Use a Google Cloud consola. Aceda à página Clusters do Kubernetes. Na coluna Notificações de clusters específicos, verifique se existe a recomendação Reduza o tamanho dos tipos de recursos.
Use a CLI gcloud ou a API Recommender especificando o subtipo do recomendador
APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT
.Para consultar esta 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 que objetos remover, pode usar o kubectl para os listar. Por exemplo, se os ConfigMaps estiverem a aproximar-se do limite de armazenamento, o seguinte comando vai gerar todos os ConfigMaps em todos os espaços de nomes, o que ajuda a identificar candidatos para eliminação:
kubectl get configmaps --all-namespaces > new_file.txt
Para implementar esta recomendação e libertar espaço, remova todos os objetos desnecessários dos tipos especificados do armazenamento. Este processo pode envolver a eliminação de recursos antigos ou a remoção de objetos grandes do armazenamento. Para mais informações, consulte o artigo Planeie clusters do GKE grandes.
O que se segue?
Se não conseguir encontrar uma solução para o seu problema na documentação, consulte a secção Obtenha apoio técnico para receber mais ajuda, incluindo aconselhamento sobre os seguintes tópicos:
- Abrindo um registo de apoio técnico através do contacto com o Cloud Customer Care.
- Receber apoio técnico da comunidade fazendo perguntas no StackOverflow e usando a etiqueta
google-kubernetes-engine
para pesquisar problemas semelhantes. Também pode juntar-se ao#kubernetes-engine
canal do Slack para receber mais apoio técnico da comunidade. - Abrir erros ou pedidos de funcionalidades através do rastreador de problemas público.