О сервере k8s metrices можно отслеживать только некоторые ресурсы

#kubernetes #metrics

#kubernetes #метрики

Вопрос:

Версия

  1. версия k8s: v1.19.0
  2. сервер метрик: версия 0.3.6

Я настроил кластер k8s и сервер метрик, он может проверять узлы и модули на главном узле, рабочий узел не видит, он возвращает unknown.

 NAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
u-29    1160m        14%    37307Mi         58%
u-31    2755m        22%    51647Mi         80%
u-32    4661m        38%    32208Mi         50%
u-34    1514m        12%    41083Mi         63%
u-36    1570m        13%    40400Mi         62%
  

когда модуль, работающий на клиентском узле, возвращается unable to fetch pod metrics for pod default/nginx-7764dc5cf4-c2sbq: no metrics known for pod
, когда модуль, работающий на главном узле, может возвращать процессор или память

 NAME                     CPU(cores)   MEMORY(bytes)
nginx-7cdd6c99b8-6pfg2   0m           2Mi
  

Комментарии:

1. Есть ли какое-либо руководство / документация, которым вы следовали при его настройке?

Ответ №1:

Это вики-ответ сообщества, основанный на комментарии OP, опубликованном для лучшей наглядности. Не стесняйтесь расширять его.

Проблема была вызвана использованием разных версий docker на разных узлах. После обновления docker до версии 19.3 на обоих узлах и выполнения kubeadm reset проблема была решена.

Ответ №2:

Обычно сервер метрик получает метрики через kubelet.

Возможно, существует проблема с извлечением информации из этого.

Вам нужно будет посмотреть на следующие конфигурации, упомянутые в readme.

Конфигурация В зависимости от настроек вашего кластера вам также может потребоваться изменить флаги, передаваемые в контейнер сервера метрик. Самые полезные флаги:

—kubelet-preferred-address-types — приоритет типов адресов узлов, используемых при определении адреса для подключения к определенному узлу (по умолчанию [Имя хоста, InternalDNS, InternalIP,ExternalDNS,externalIP])

—kubelet-небезопасно-tls — Не проверяет CA обслуживающих сертификатов, представленных Kubelets. Только для целей тестирования.

—requestheader-client-ca-file — Укажите пакет корневых сертификатов для проверки клиентских сертификатов при входящих запросах.

Возможно, вы можете проверить изменения конфигурации ниже.

 --kubelet-preferred-address-types=InternalIP 
--kubelet-insecure-tls
  

Возможно, вы сможете обратиться к этому тикету для получения дополнительной информации.

Комментарии:

1. Я исправляю эту проблему из-за разных версий docker, некоторые — 18.06, некоторые — 19.3, после обновления до 19.3 и сброса kubeadm он работает для всех модулей, спасибо

2. @benq Рассмотрите возможность публикации предпринятых вами действий в качестве ответа. Это было бы лучше видно для остальной части сообщества.