Я настраиваю prometheus для очистки кластера kubernetes. Я пытаюсь использовать «роль: узел» с kubernetes_sd_config для мониторинга одного из кластеров K8s.
Я создал сертификат ashishcert.pem для пользователя «ashish», и prometheus будет использовать этот сертификат для очистки кластера. Этот сертификат подписан ЦС кластера.
Прометей.yml
Теперь, когда я оглядываюсь назад в своем prometheus, он говорит: «Невозможно проверить сертификат x.x.x, потому что он не содержит IP SAN».
результат на стороне прометея
Порт, не указанный на изображении, предназначен для кублета, и это означает, что он не может удалить метрики кублета для всех узлов в кластере. Хотя я добавил все имена узлов и IP-адреса в SAN сертификата.
я проверил свой сертификат, проверив показатели apisever, используя мой сертификат и сертификат CA с помощью приведенной ниже команды.
curl -v https://myclustername:6443/metrics --cacert ca.pem --cert ashishcert.pem --key ashishkey.pem
И приведенная выше команда сработала успешно. мой сертификат был принят apiserver. Однако, когда я попытался свернуть метрики кублета с путем https://myclustername:10250/metrics. это дало мне ошибку, говоря, что CA не является доверенным. похоже, что CA кублета отличается от CA apiserver.
результат при выполнении завитка
У меня было понимание, что мой сертификат свяжет меня (prometheus) с apiserver и тогда его обязанность apiserver для всех дальнейших коммуникаций, как apiserver будет использовать свой сертификат для получения метрик от kublet. Однако с результатами приведенных выше команд похоже, что mycert также аутентифицируется непосредственно с помощью kublet. Подтвердите, чей сертификат будет использоваться для внутренних коммуникаций.
Как очистить все узлы с ролью: узел, не игнорируя сертификаты?