我在kubernetes集群中设置了datadog跟踪客户端,以监视部署的应用程序。 kubernetes版本1.15x可以正常工作,但是一旦我将版本升级到1.16x,该服务本身就不会显示在Datadog Dashboard中。

目前正在使用:

  • 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守护程序集的问题:
    我要解决的问题:

  • 检查守护程序集是否存在:
    kubectl get ds -n datadog
    
  • 编辑datadog守护程序集:
    kubectl edit ds datadog -n datadog
    
  • 在打开的Yaml中,添加
    - name: DD_KUBELET_TLS_VERIFY
      value: "false"
    
    在所有位置的 env:标记中添加此标签。对我来说,yaml中有4个带有DD标签的地方。
  • 保存并关闭它。守护程序将重新启动。应用程序将开始被跟踪。
  • 10-08 02:00