排查系统指标问题


本页面介绍了如何解决 Google Kubernetes Engine (GKE) 集群上的系统指标相关问题。

如果您需要其他帮助,请与 Cloud Customer Care 联系。

确认指标代理具有足够的内存

在大多数情况下,默认向 GKE 指标代理分配的资源是足够的。但是,如果 DaemonSet 反复崩溃,您可以按照以下说明检查终止原因:

  1. 获取 GKE 指标代理 Pod 的名称:

    kubectl get pods -n kube-system -l component=gke-metrics-agent
    

    查找状态为 CrashLoopBackOff 的 Pod。

    输出类似于以下内容:

    NAME                    READY STATUS           RESTARTS AGE
    gke-metrics-agent-5857x 0/1   CrashLoopBackOff 6        12m
    
  2. 描述状态为 CrashLoopBackOff 的 Pod:

    kubectl describe pod POD_NAME -n kube-system
    

    POD_NAME 替换为上一步中 Pod 的名称。

    如果 Pod 的终止原因为 OOMKilled,则代理需要额外的内存。

    输出类似于以下内容:

      containerStatuses:
      ...
      lastState:
        terminated:
          ...
          exitCode: 1
          finishedAt: "2021-11-22T23:36:32Z"
          reason: OOMKilled
          startedAt: "2021-11-22T23:35:54Z"
    
  3. 向具有失败指标代理的节点添加节点标签。您可以使用永久性节点标签,也可以使用临时节点标签。 我们建议您尝试再添加 20 MB。如果代理不断崩溃,您可以再次运行此命令,注意将节点标签替换为请求更多内存的标签。

    如需使用永久性标签更新节点池,请运行以下命令:

    gcloud container node-pools update NODEPOOL_NAME \
        --cluster=CLUSTER_NAME \
        --node-labels=ADDITIONAL_MEMORY_NODE_LABEL \
        --location=COMPUTE_LOCATION
    

    请替换以下内容:

    • NODEPOOL_NAME:节点池的名称。
    • CLUSTER_NAME:现有集群的名称。
    • ADDITIONAL_MEMORY_NODE_LABEL:其中一个额外内存节点标签;请使用以下任一项:
      • 添加 10 MB:cloud.google.com/gke-metrics-agent-scaling-level=10
      • 添加 20 MB:cloud.google.com/gke-metrics-agent-scaling-level=20
      • 添加 50 MB:cloud.google.com/gke-metrics-agent-scaling-level=50
      • 添加 100 MB:cloud.google.com/gke-metrics-agent-scaling-level=100
      • 添加 200 MB:cloud.google.com/gke-metrics-agent-scaling-level=200
      • 添加 500 MB:cloud.google.com/gke-metrics-agent-scaling-level=500
    • COMPUTE_LOCATION:集群的 Compute Engine 位置

    或者,您也可以使用以下命令添加升级后不会保留的临时节点标签:

    kubectl label node/NODE_NAME \
    ADDITIONAL_MEMORY_NODE_LABEL --overwrite
    

    替换以下内容:

    • NODE_NAME:受影响的指标代理的节点名称。
    • ADDITIONAL_MEMORY_NODE_LABEL:其中一个额外内存节点标签;请使用上述示例中的一个值。

后续步骤

如果您需要其他帮助,请与 Cloud Customer Care 联系。