Este documento ajuda a solucionar problemas de observabilidade no Google Distributed Cloud. Se você tiver algum desses problemas, analise as sugestões de correções e soluções alternativas.
Se precisar de mais ajuda, entre em contato com o Suporte do Google.
Os registros de auditoria do Cloud não são coletados
Os registros de auditoria do Cloud são ativados por padrão, a menos que haja uma sinalizaçãodisableCloudAuditLogging
definida na seção clusterOperations
da configuração do cluster.
Se os registros de auditoria do Cloud estiverem ativados, as permissões serão o motivo mais comum de não serem coletados. Nesse cenário, as mensagens de erro de permissão negada são exibidas no contêiner do proxy de registros de auditoria do Cloud.
O contêiner do proxy dos Registros de auditoria do Cloud é executado como um DaemonSet em todos os clusters do Google Distributed Cloud.Se você encontrar erros de permissão, siga as etapas para resolver problemas de permissão.
Métricas kube-state-metrics
não são coletadas
O kube-state-metrics
(KSM) é executado como uma única implantação de réplica no cluster
e gera métricas em quase todos os recursos no cluster. Quando o KSM e o gke-metrics-agent
são executados no mesmo nó, há um risco maior de interrupção entre os agentes de métricas em todos os nós.
As métricas do KSM têm nomes que seguem o padrão de kube_<ResourceKind>
, como
kube_pod_container_info
. As métricas que começam com kube_onpremusercluster_
são
do controlador de cluster local, não do KSM.
Se as métricas do KSM estiverem ausentes, revise as seguintes etapas de solução de problemas:
- No Cloud Monitoring, verifique a contagem de CPU, memória e reinicialização do KSM usando
as métricas da API de resumo, como
kubernetes.io/anthos/container/...
. Esse é um pipeline separado com o KSM. Confirme se o pod KSM não está limitado por recursos insuficientes.- Se essas métricas de API de resumo não estiverem disponíveis para KSM,
gke-metrics-agent
no mesmo nó provavelmente também terá o mesmo problema.
- Se essas métricas de API de resumo não estiverem disponíveis para KSM,
- No cluster, verifique o status e os registros do pod KSM e o pod
gke-metrics-agent
no mesmo nó com o KSM.
Repetição de falhas de kube-state-metrics
Sintoma
Nenhuma métrica de kube-state-metrics
(KSM) está disponível no Cloud Monitoring.
Causa
É mais provável que esse cenário ocorra em clusters grandes ou clusters com grandes quantidades de recursos. O KSM é executado como uma única implantação de réplica e lista quase todos os recursos no cluster, como pods, implantações, DaemonSets, ConfigMaps, Secrets e PersistentVolumes. As métricas são geradas em cada um desses objetos de recurso. Se algum dos recursos tiver muitos objetos, como um cluster com mais de 10.000 pods, o KSM poderá ficar sem memória.
Versões afetadas
Esse problema pode ocorrer em qualquer versão do Google Distributed Cloud.
O limite padrão de CPU e memória foi aumentado nas últimas versões do Google Distributed Cloud. Portanto, esses problemas de recursos devem ser menos comuns.
Correção e solução alternativa
Para verificar se o problema é causado por problemas de memória, consulte as seguintes etapas:
- Use
kubectl describe pod
oukubectl get pod -o yaml
e verifique a mensagem de status de erro. - Verifique a métrica de consumo e utilização de memória para KSM e confirme se ela está atingindo o limite antes de ser reiniciada.
Se você confirmar que há problemas de falta de memória, use uma das soluções abaixo:
Aumentar a solicitação de memória e o limite para KSM.
Para ajustar a CPU e a memória do KSM, use o recurso personalizado do Stackdriver resourceOverride para
kube-state-metrics
.Reduza o número de métricas do KSM.
No Google Distributed Cloud 1.13, o KSM expõe apenas um número menor de métricas chamadas métricas principais por padrão. Esse comportamento significa que o uso de recursos é menor que as versões anteriores, mas o mesmo procedimento pode ser seguido para reduzir ainda mais o número de métricas do KSM.
Para versões do Google Distributed Cloud anteriores à 1.13, o KSM usa as sinalizações padrão. Essa configuração expõe um grande número de métricas.
Repetição de falhas de gke-metrics-agent
Se gke-metrics-agent
só tiver problemas de falta de memória no nó em que
kube-state-metrics
existe, a causa é um grande número de métricas
kube-state-metrics
. Para atenuar esse problema, reduza stackdriver-operator
e modifique
o KSM para expor um pequeno conjunto de métricas necessárias, conforme detalhado na seção anterior.
Lembre-se de aumentar o tamanho do stackdriver-operator
após o upgrade do cluster para o Google Distributed Cloud 1.13, em que o KSM, por padrão, expõe um número menor de métricas
principais.
gke-metric-agent
. É possível ajustar a CPU e a memória de todos os pods gke-metrics-agent
adicionando o campo resourceAttrOverride
ao recurso personalizado do Stackdriver.
Repetição de falhas de stackdriver-metadata-agent
Sintoma
Nenhum rótulo de metadados do sistema está disponível ao filtrar métricas no Cloud Monitoring.
Causa
O caso mais comum de repetição de falha stackdriver-metadata-agent
é devido a
eventos de memória insuficiente. Este evento é semelhante a kube-state-metrics
. Embora stackdriver-metadata-agent
não esteja listando todos os recursos, ele ainda lista todos os objetos dos tipos de recursos relevantes, como pods, implantações e NetworkPolicy. O agente é executado como uma única implantação de réplica, o que aumenta
o risco de eventos de memória insuficiente se o número de objetos for muito grande.
Versão afetada
Esse problema pode ocorrer em qualquer versão do Google Distributed Cloud.
O limite padrão de CPU e memória foi aumentado nas últimas versões do Google Distributed Cloud. Portanto, esses problemas de recursos devem ser menos comuns.
Correção e solução alternativa
Para verificar se o problema é causado por problemas de memória, consulte as seguintes etapas:
- Use
kubectl describe pod
oukubectl get pod -o yaml
e verifique a mensagem de status do erro. - Verifique a métrica de consumo e utilização de memória para
stackdriver-metadata-agent
e confirme se ela está atingindo o limite antes de ser reiniciada.
resourceAttrOverride
do recurso personalizado do Stackdriver.
Repetição de falhas de metrics-server
Sintoma
O escalonador automático horizontal de pods e o kubectl top
não funcionam no cluster.
Causa e versões afetadas
Esse problema não é muito comum, mas é causado por erros de falta de memória em clusters grandes ou em clusters com alta densidade de pods.
Esse problema pode ocorrer em qualquer versão do Google Distributed Cloud.
Correção e solução alternativa
Aumentar os limites de recursos do servidor de métricas.
Na versão 1.13 e mais recentes do Google Distributed Cloud, o namespace de metrics-server
e a configuração dele foram movidos de kube-system
para
gke-managed-metrics-server
.
metrics-server-operator
e mude manualmente o pod metrics-server
.
A seguir
Se precisar de mais ajuda, entre em contato com o Suporte do Google.