java - 无法自动检测 kubelet URL:datadog_checks.base.errors.CheckException
问题描述
我在我的 kubernetes 集群中设置了 datadog 跟踪客户端来监控我部署的应用程序。它在 kubernetes 版本 1.15x 上运行良好,但是一旦我将版本升级到 1.16x,服务本身就没有显示在 Datadog 仪表板中。
目前使用:
Kubernetes 1.16.9
数据狗 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 是否存在:
kubectl get ds -n datadog
编辑 datadog 守护进程:
kubectl edit ds datadog -n datadog
在打开的 yaml 中,添加
- name: DD_KUBELET_TLS_VERIFY value: "false"
在所有地方的env:标记中添加这个。对我来说,yaml 中有 4 个地方有 DD 标签。
保存并关闭它。守护进程将重新启动。并且应用程序将开始被跟踪。
推荐阅读
- excel - 复制数据如果有内容
- node.js - Discord.js:手动触发事件
- r - tmap tm_bubble 大小不正确
- java - javax.jms.JMSException:无法连接到代理 URL:tcp://localhost:61616。原因:java.net.ConnectException:连接被拒绝:连接
- xaml - UWP VisualStateManager PointerOver 不起作用
- laravel-5.8 - Spatie Laravel 权限急切加载
- python - 在 xlwings 中创建和命名表
- excel - 如何将pdf内容复制到word doc然后使用excel vba复制到excel?
- python - 我们怎样才能更快地比较两个不同表之间的数据
- regex - 如何在 Oracle 中获取方括号之间的值