SuperAPI AI 工具集

debug-k8s-collection

测试与质量

查看项目

更新于 10-16 09:47

技能介绍

用途:诊断 Observe Agent 在 Kubernetes 上采集数据失败的问题,按顺序排查直至定位根因。注意:不要在代理 shell 中执行 helm 或 kubectl,应把命令交给用户在自有终端运行并回传输出。

主要能力与用法:

  1. 检查 Pod 状态:kubectl get pods -n observe,识别 CrashLoopBackOff、Pending、ImagePullBackOff 等;对非 Running 的 Pod 用 kubectl describe pod -n observe <pod-name> 查看 Events。
  2. 查看日志:用 kubectl logs -n observe -l app.kubernetes.io/name=observe-agent --all-containers --tail=200 并 grep 过滤 401、403、unauthorized、context deadline、connection refused、certificate、oom 等关键字; crashed 的 Pod 加 --previous,多容器用 -c。
  3. 校验 Secret:检查 agent-credentials 是否存在含 OBSERVE_TOKEN;可打印首 8 位、末 4 位与长度识别截断或覆盖错误。缺失或错误时可用 create secret generic --dry-run=client -o yaml 配合 apply 幂等重建,并补 Helm 注解与标签后 restart deployment/daemonset。
  4. 检查 Helm 值:helm -n observe get values observe-agent -o yaml,核对 collectionEndpoint(需带结尾斜杠)、cluster.name、各 collector 开关。
  5. 验证端点连通:运行临时 curl Pod 测试采集端点,HTTP 200 或 404 即代表网络可达,超时或拒绝说明出网被阻断,测试后删除 Pod。
  6. 检查数据到达:observe datastream view <DATASTREAM_ID>,轮询 totalObservations 和 lastIngest,持续为 0 则继续排查。
  7. 开启调试日志:在 values 中加 agent.config.global.debug.enabled=true 与 verbosity: detailed,再 helm upgrade --reuse-values,用 kubectl logs -f 查看;调试后应移除以免日志过多。
  8. 若启用 selfMonitor,检查 monitor Pod 日志,相关指标进入 Observe Agent/Events 数据流。

平台特定失败模式:EKS Fargate 无法运行 DaemonSet,需用 node.enabled: false 与 nodeless.enabled: true,并确认 Fargate profile 与 sidecar 注解;GKE Autopilot 会拒绝 unschedulable 亲和标签,需全组件 OS-only 亲和覆盖,且 node.metrics.enabled 必须为 false;EKS Auto Mode(Karpenter)不为 DaemonSet 调度节点,需先应用 PriorityClass 并在 values 指定 priorityClassName,同时设 node.kubeletstats.useNodeIp: true。

限制:涉及具体 token、数据流 ID、集群 ID 与域名需用户自行提供;未提供内容(如具体收费、版本支持范围)暂未提供。