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
Verifique se os registros de auditoria do Cloud estão ativados na seçãocloudAuditLogging
da configuração do cluster. Verifique se o código do projeto, o local e a chave da conta de serviço estão configurados corretamente. O ID do projeto precisa ser igual ao ID do projeto
em gkeConnect
.
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 de registros de auditoria do Cloud é executado como um dos seguintes:- Um pod estático no cluster de administrador ou independente.
- Como um contêiner de arquivo secundário no pod
kube-apiserver
.
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:
Para as versões 1.9 e anteriores do Google Distributed Cloud, 1.10.6 ou anteriores, 1.11.2 ou anteriores e 1.12.1 ou anteriores:
- Não há uma boa solução a longo prazo: se você editar o recurso relacionado ao KSM, as alterações serão revertidas automaticamente por
monitoring-operator
. É possível reduzir a escala vertical de
monitoring-operator
para zero réplicas e, em seguida, editar a implantação do KSM para ajustar o limite de recursos. No entanto, o cluster não receberá patches de vulnerabilidade entregues por novas versões de patch usandomonitoring-operator
.Lembre-se de escalonar
monitoring-operator
novamente após o upgrade do cluster para uma versão posterior com correção.
- Não há uma boa solução a longo prazo: se você editar o recurso relacionado ao KSM, as alterações serão revertidas automaticamente por
Para as versões do Google Distributed Cloud 1.10.7 ou mais recentes, 1.11.3 ou mais recentes, 1.12.2 ou mais recentes e 1.13 e mais recentes, crie um
ConfigMap
chamadokube-state-metrics-resizer-config
no namespacekube-system
(gke-managed-metrics-server
para 1.13 ou mais recente) com a definição a seguir. Ajuste os números de CPU e memória conforme desejado:apiVersion: v1 kind: ConfigMap metadata: name: kube-state-metrics-resizer-config namespace: kube-system data: NannyConfiguration: |- apiVersion: nannyconfig/v1alpha1 kind: NannyConfiguration baseCPU: 200m baseMemory: 1Gi cpuPerNode: 3m memoryPerNode: 20Mi
Depois de criar o ConfigMap, reinicie a implantação do KSM excluindo o pod do KSM usando o seguinte comando:
kubectl -n kube-system rollout restart deployment 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
.
A seguir
Se precisar de mais ajuda, entre em contato com o Suporte do Google.