Невозможно автоматически определить URL-адрес кублета: datadog_checks.base.errors.CheckException

Я установил клиент трассировки datadog в своем кластере kubernetes для мониторинга развернутого приложения. Он отлично работал с версией kubernetes 1.15x, но как только я обновил версию до 1.16x, сама служба не отображается на панели инструментов Datadog.

В настоящее время используется:

  1. Kubernetes 1.16.9

  2. Датадог 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, которую мне нужно использовать для мониторинга?


person Sanket Singh    schedule 17.06.2020    source источник
comment
Итак, панель управления Datadog работает, но трассировки службы не отображаются?   -  person Piotr Malec    schedule 18.06.2020
comment
Ровно @PiotrMalec   -  person Sanket Singh    schedule 19.06.2020
comment
Это может быть вызвано изменениями, внесенными в 1.16. Взгляните на это сообщение в блоге . Предлагаю попробовать настроить Datadog с нуля.   -  person Piotr Malec    schedule 30.06.2020
comment
Это произошло не из-за версии Kubernetes, а из-за версии Datadog и ее способов получения Kubelet. @PiotrMalec   -  person Sanket Singh    schedule 01.07.2020


Ответы (2)


Для меня это была проблема с развернутым набором демонов DataDog:

Что я сделал, чтобы решить:

  1. Проверяем демонсет, существует он или нет:

    kubectl get ds -n datadog
    
  2. Отредактируйте набор демонов datadog:

    kubectl edit ds datadog -n datadog
    
  3. В открывшемся ямле добавляем

    - name: DD_KUBELET_TLS_VERIFY
      value: "false"
    

    Добавьте это в тег env: для всех мест. Для меня было 4 места с тегами DD в yaml.

  4. Сохраните и закройте. Демонсет перезапустится. И приложение начнет отслеживаться.

person Sanket Singh    schedule 01.07.2020
comment
Всегда есть проблема с TLS с чем-либо, люди решают просто отключить это :) - person suren; 01.07.2020
comment
Вы можете предложить какое-нибудь другое решение? Поскольку я застрял в этом, а также немного новичок в Datadog. @suren - person Sanket Singh; 01.07.2020
comment
большое спасибо! У меня была аналогичная проблема, я применил это изменение, и она была решена. Затем я также добавил его в datadog.env для Helm values.yaml, чтобы установить в любом другом кластере. - person Alfchee; 30.09.2020

Если вы используете диаграмму 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
person Sajjad Shirazy    schedule 15.04.2021