为什么 sysdig-agent pod 在仅私有的 RHCOS 集群上 CrashLoopBackOff?
虚拟私有云 RHCOS 工作节点 仅限私人
如果您的群集使用 RHCOS 工作节点,并且没有出站互联网访问,那么 ibm-observe 命名空间中的 sysdig-agent pod 可能会进入 CrashLoopBackOff 或无法启动。
在使用 RHCOS 工作节点的专用群集上,您的 sysdig-agent pod 位于 CrashLoopBackOff 或在 ibm-observe 命名空间中启动失败。
安装或配置 Sysdig 集成后,您可能会看到 sysdig-agent pod 反复重启,并且无法恢复健康。 检查 pod 日志时,会发现类似以下的错误:
oc -n ibm-observe logs <sysdig-agent-pod> --previous
示例输出:
* Kernel headers not found in /host/lib/modules/5.14.0-427.105.1.el9_4.x86_64/build, continuing anyway
* Loading kernel probe
Error! Your kernel headers for kernel 5.14.0-427.105.1.el9_4.x86_64 cannot be found at /lib/modules/5.14.0-427.105.1.el9_4.x86_64/build or /lib/modules/5.14.0-427.105.1.el9_4.x86_64/source.
* Trying to download precompiled module from https://download.sysdig.com/stable/sysdig-probe-binaries/...
Download of sysdigcloud-probe for version 14.3.2 failed.
curl: (28) Failed to connect to download.sysdig.com port 443: Connection timed out
Cannot load the probe
在 RHCOS 工作节点上,监控代理无法依赖本地内核头,因为 RHCOS 不包含这些头。 在这种情况下,Sysdig 代理会尝试访问 sysdig.com 以获取预编译驱动程序。 在专用群集或没有外部互联网访问的群集中,该过程会失败,代理 pod 可以进入 CrashLoopBackOff。
如果 eBPF 驱动程序未启用,这可能是导致问题的原因之一。 请按照以下步骤诊断并解决问题。
eBPF 现在已在新的 Sysdig 部署中默认启用。 但是,如果您在专用环境中使用 RHCOS 工作人员的现有群集上遇到问题,请验证 eBPF 是否已启用,并在必要时启用它。
验证 Sysdig 代理配置,必要时启用 eBPF 驱动程序。
-
检查集群上当前是否启用了 eBPF 驱动程序。
oc -n ibm-observe get daemonset/sysdig-agent -o jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="SYSDIG_AGENT_DRIVER")].value}'- 如果输出显示
universal_ebpf,则 eBPF 已经启用。 以下步骤并非必要,执行这些步骤不会造成任何伤害,但无法解决您的问题。 您可能需要调查其他潜在原因。 - 如果输出为空或显示的值不是
universal_ebpf,则继续下一步以启用 eBPF。
- 如果输出显示
-
将 Sysdig 代理驱动程序设置为
universal_ebpf。oc -n ibm-observe set env daemonset/sysdig-agent SYSDIG_AGENT_DRIVER=universal_ebpf -
重新启动
sysdig-agentpod。oc delete pods -l app=sysdig-agent -n ibm-observe -
验证是否已创建替换 pod 并返回
Running状态。oc get pods -l app=sysdig-agent -n ibm-observe
有关监控 RHCOS 工作节点限制的更多信息,请参阅 监控群集健康状况。