CPU insuficiente

Sintoma

Ao serem iniciados, os pods de telemetria entram e saem do estado CrashLoopBackoff. Isso pode causar lacunas periódicas nas suas métricas ou gráficos à medida que os pods são reiniciados. Também é possível notar discrepâncias com os dados de análise, já que algumas seções estão faltando.

Mensagens de erro

Ao usar kubectl para visualizar os estados do pod, você verá um ou mais pods de métricas no estado CrashLoopBackoff. Consulte o seguinte comando:

kubectl get pods -n APIGEE_NAMESPACE

Em que APIGEE_NAMESPACE é o namespace do Kubernetes para seus componentes da Apigee híbrida. Para mais informações, consulte Criar o namespace apigee.

Exemplo de saída

NAME                                                      READY   STATUS             RESTARTS   AGE
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     CrashLoopBackoff   10         10m
apigee-metrics-adapter-apigee-telemetry-1104-7fyff-tts65  0/1     CrashLoopBackoff   10         10m
apigee-metrics-default-telemetry-proxy-1104-hvwoo-zlmlw   0/1     FailedScheduling   0          12m

Etapas comuns do diagnóstico

  1. Verifique os eventos para problemas com pods de telemetria usando o seguinte comando:
    kubectl -n apigee get event 

    Exemplo de saída

    LAST SEEN   TYPE      REASON           OBJECT                                                           MESSAGE
    53m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519fkt7j
    53m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251940 Job completed
    43m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-292519l87m8
    43m         Normal    Completed        job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251950 Job completed
    33m         Normal    SuccessfulCreate job/apigee-cassandra-schema-val-jghunt-20250709-0820206-29251960 Created pod: apigee-cassandra-schema-val-jghunt-20250709-0820206-29251962ncc
        
  2. Também é possível verificar os eventos de pods de telemetria com um estado CrashLoopBackOff usando o seguinte comando:
    kubectl -n apigee describe POD_NAME

    em que POD_NAME é o nome do pod no estado CrashLoopBackOff.

    Exemplo de saída

     apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv    
  3. Também é possível verificar o status cpu dos pods com o seguinte comando:
    kubectl -n apigee get hpa | grep unknown

    Exemplo de saída

    apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   ReplicaSet/apigee-metrics-apigee-telemetry-app-1101-qc36n-dxzrv   /80%                                2         10        2          8h
     

Causas possíveis

Causa Descrição Instruções de solução de problemas aplicáveis para
metrics.app.resources.requests.cpu e metrics.app.resources.limits.cpu estão ausentes O cpu precisa ser especificado no arquivo overrides.yaml. Apigee híbrido

Causa

cpu não é mencionado no arquivo overrides.yaml, então ele recebe um valor indefinido.cpu

Diagnóstico

Verifique o arquivo overrides.yaml para saber se os dois valores cpu estão definidos para metrics.app.resources.requests.cpu e metrics.app.resources.limits.cpu.

Resolução

Se as configurações de cpu estiverem faltando no arquivo overrides.yaml para métricas, forneça os dois valores de cpu no arquivo overrides.yaml.

  1. Adicione a seguinte configuração na seção metrics do arquivo overrides.yaml:

    metrics:
      app: # The apigee-prometheus-app container in the "app" pod
        resources:
          requests:
            memory: 512Mi # Default value: 512Mi
            cpu: 500m # Default value: 500m
          limits:
            memory: 2Gi # default: 1Gi
            cpu: 500m # Default value: 500m
      

  2. Aplique as mudanças usando o seguinte comando:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    • Em que ENV_RELEASE_NAME é um nome exclusivo usado para rastrear a instalação e o upgrade do gráfico apigee-env. Embora geralmente seja o mesmo que o ENV_NAME, ele precisa ser diferente se o ambiente tiver o mesmo nome do grupo de ambientes. Por exemplo, se ambos forem chamados de dev, use dev-env-release e dev-envgroup-release para diferenciá-los.

    • Em que APIGEE_NAMESPACE é o namespace do Kubernetes para seus componentes da Apigee híbrida. Para mais informações, consulte Criar o namespace apigee.

    • Em que ENV_NAME é o nome usado ao criar o ambiente na UI.

    • Em que OVERRIDES_FILE é o arquivo overrides.yaml usado durante upgrades ou instalação.

Para mais informações, consulte Referência da propriedade de configuração.

É necessário coletar informações de diagnóstico

Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguintes informações de diagnóstico e entre em contato com o Google Cloud Customer Care:

  1. O arquivo overrides.yaml.
  2. A saída do script Apigee híbrida must-gather.