Модуль Metricbeat kubernetes не может подключиться к kubelet
У нас есть установка, в которой Metricbeat развертывается как DaemonSet в кластере Kubernetes (в частности - AWS EKS).
Кажется, что все работает нормально, но соединение kubelet.
Чтобы уточнить, следующий модуль:
- module: kubernetes
enabled: true
metricsets:
- state_pod
period: 10s
hosts: ["kube-state-metrics.system:8080"]
работает правильно (события попадают в logstash/ эластичный).
Эта конфигурация модуля, однако, не работает ни в одном из вариантов значения хостов (localhost
/kubernetes.default
/без разницы):
- module: kubernetes
period: 10s
metricsets:
- pod
hosts: ["localhost:10255"]
enabled: true
add_metadata: true
in_cluster: true
ПРИМЕЧАНИЕ: использование IP-адреса кластера вместо localhost (так, чтобы оно переходило в плоскость управления) также работает (хотя, конечно, не извлекает необходимую информацию).
Приведенная выше конфигурация была взята непосредственно из документации Metricbeat и сразу показалась мне странной - как localhost переводится (из докера Metricbeat) в соответствующий кублет?
Ошибка, как и следовало ожидать, в свете вышесказанного:
error making http request: Get http://localhost:10255/stats/summary:
dial tcp [::1]:10255: connect: cannot assign requested address
что указывает на какую-то проблему с подключением.
Тем не менее, когда SSH-ing на любом узле, Metricbeat развернут на http://localhost:10255/stats/summary
обеспечивает правильный вывод:
{
"node": {
"nodeName": "...",
"systemContainers": [
{
"name": "pods",
"startTime": "2018-12-06T11:22:07Z",
"cpu": {
"time": "2018-12-23T06:54:06Z",
...
},
"memory": {
"time": "2018-12-23T06:54:06Z",
"availableBytes": 17882275840,
....
Я должен упустить что-то очень очевидное. Любое предложение подойдет.
ПРИМЕЧАНИЕ: я отправил кросс-пост (и не получил ответа в течение нескольких дней) то же самое на форумах Elasticsearch
1 ответ
Введите IP-адрес узла Pod через valueFrom
провайдер в env:
список:
env:
- name: HOST_IP
valueFrom:
fieldRef: status.hostIP
а затем обновите файл конфигурации metricbeat, чтобы использовать IP-адрес хоста:
hosts: ["${HOST_IP}:10255"]
какой метрический бит разрешит через внедрение конфигурации окружения