无法自动检测到 kubelet URL:datadog_checks.base.errors.CheckException
Unable to detect the kubelet URL automatically : datadog_checks.base.errors.CheckException
我在我的 kubernetes 集群中设置了 datadog trace 客户端来监控我部署的应用程序。它在 kubernetes 版本 1.15x 上运行良好,但一旦我将版本升级到 1.16x,服务本身就没有显示在 Datadog 仪表板中。
目前正在使用:
Kubernetes 1.16.9
Datadog 0.52.0
检查代理状态时。它给出以下异常:
Instance ID: kubelet:xxxxxxxxxxxxx [ERROR]
Configuration Source: file:/etc/datadog-agent/conf.d/kubelet.d/conf.yaml.default
Total Runs: 12,453
Metric Samples: Last Run: 0, Total: 0
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 0, Total: 0
Average Execution Time : 5ms
Last Execution Date : 2020-06-19 15:18:19.000000 UTC
Last Successful Execution Date : Never
Error: Unable to detect the kubelet URL automatically.
Traceback (most recent call last):
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/checks/base.py", line 822, in run
self.check(instance)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/kubelet/kubelet.py", line 297, in check
raise CheckException("Unable to detect the kubelet URL automatically.")
datadog_checks.base.errors.CheckException: Unable to detect the kubelet URL automatically.
我觉得这像是版本问题。如果是我需要用哪个Datadog版本来监控?
这是我部署的 DataDog daemonset 的问题:
我做了什么来解决:
检查daemonset是否存在:
kubectl get ds -n datadog
编辑 datadog 守护程序集:
kubectl edit ds datadog -n datadog
在打开的yaml中,添加
- name: DD_KUBELET_TLS_VERIFY
value: "false"
在所有地方的 env: 标签中添加这个。对我来说,yaml 中有 4 个地方有 DD 标签。
保存并关闭它。 daemonset 将重新启动。应用程序将开始被跟踪。
如果您使用的是 Helm 图表,您可以覆盖以下值:
## https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml
datadog:
# kubelet configuration
kubelet:
# datadog.kubelet.tlsVerify -- Toggle kubelet TLS verification
# @default -- true
tlsVerify: false
我在我的 kubernetes 集群中设置了 datadog trace 客户端来监控我部署的应用程序。它在 kubernetes 版本 1.15x 上运行良好,但一旦我将版本升级到 1.16x,服务本身就没有显示在 Datadog 仪表板中。
目前正在使用:
Kubernetes 1.16.9
Datadog 0.52.0
检查代理状态时。它给出以下异常:
Instance ID: kubelet:xxxxxxxxxxxxx [ERROR]
Configuration Source: file:/etc/datadog-agent/conf.d/kubelet.d/conf.yaml.default
Total Runs: 12,453
Metric Samples: Last Run: 0, Total: 0
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 0, Total: 0
Average Execution Time : 5ms
Last Execution Date : 2020-06-19 15:18:19.000000 UTC
Last Successful Execution Date : Never
Error: Unable to detect the kubelet URL automatically.
Traceback (most recent call last):
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/checks/base.py", line 822, in run
self.check(instance)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/kubelet/kubelet.py", line 297, in check
raise CheckException("Unable to detect the kubelet URL automatically.")
datadog_checks.base.errors.CheckException: Unable to detect the kubelet URL automatically.
我觉得这像是版本问题。如果是我需要用哪个Datadog版本来监控?
这是我部署的 DataDog daemonset 的问题:
我做了什么来解决:
检查daemonset是否存在:
kubectl get ds -n datadog
编辑 datadog 守护程序集:
kubectl edit ds datadog -n datadog
在打开的yaml中,添加
- name: DD_KUBELET_TLS_VERIFY value: "false"
在所有地方的 env: 标签中添加这个。对我来说,yaml 中有 4 个地方有 DD 标签。
保存并关闭它。 daemonset 将重新启动。应用程序将开始被跟踪。
如果您使用的是 Helm 图表,您可以覆盖以下值:
## https://github.com/DataDog/helm-charts/blob/master/charts/datadog/values.yaml
datadog:
# kubelet configuration
kubelet:
# datadog.kubelet.tlsVerify -- Toggle kubelet TLS verification
# @default -- true
tlsVerify: false