Este documento ajuda a resolver problemas de observabilidade no Google Distributed Cloud Virtual para VMware. 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 Virtual for VMware.
O limite padrão de CPU e memória aumentou nas últimas versões do Google Distributed Cloud Virtual for VMware. Portanto, esses problemas de recursos são 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 o Google Distributed Cloud Virtual for VMware versões 1.9 e anteriores, 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 o Google Distributed Cloud Virtual for VMware versões 1.10.7 ou mais recentes, 1.11.3 ou mais recentes, 1.12.2 ou mais recente 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 seguinte definição. 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.
Para o Google Distributed Cloud Virtual for VMware 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 as versões do Google Distributed Cloud Virtual for VMware 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 escalonar novamente stackdriver-operator
após o upgrade do cluster para o Google Distributed Cloud Virtual for VMware 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 Virtual for VMware.
O limite padrão de CPU e memória foi aumentado nas últimas versões do Google Distributed Cloud Virtual para VMware. 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 Virtual for VMware.
Correção e solução alternativa
Aumentar os limites de recursos do servidor de métricas.
No Google Distributed Cloud Virtual for VMware versão 1.13 e mais recente, 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.