Без использования Heapster есть ли способ собирать как показатели CPU или Disk об узле в кластере Kubernetes?Kubernetes: Как получить метрики диска/cpu узла
Как Гапстер даже собирает эти показатели в первую очередь?
Без использования Heapster есть ли способ собирать как показатели CPU или Disk об узле в кластере Kubernetes?Kubernetes: Как получить метрики диска/cpu узла
Как Гапстер даже собирает эти показатели в первую очередь?
Мониторинг Kubernetes подробно описан в документации here, но в основном это касается инструментов, использующих хипстер.
Информация, специфичная для узла, доступна через пользовательский интерфейс cAdvisor, доступ к которому возможен через порт 4194 (см. Приведенные ниже команды для доступа к этому через прокси-API).
Хипстер запрашивает кубелет для статистики, поданной в <kubelet address>:10255/stats/
(другие конечные точки можно найти в коде here).
Попробуйте это:
$ kubectl proxy &
Starting to serve on 127.0.0.1:8001
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")
$ curl -X "POST" -d '{"containerName":"/","subcontainers":true,"num_stats":1}' localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/container
...
Обратите внимание, что эти конечные точки не документированы, поскольку они предназначены для внутреннего использования (и отладки), и может измениться в будущем (мы в конце концов хотим предложить более стабильную версионную конечную точку).
Update:
По Kubernetes версии 1.2, Kubelet экспортирует "сводной" API, объединяющий статистик из всех Бобы:
$ kubectl proxy &
Starting to serve on 127.0.0.1:8001
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")
$ curl localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/summary
...
Я бы рекомендовал использовать heapster для сбора метрик. Это довольно прямолинейно. Однако для доступа к этим метрикам вам нужно добавить «type: NodePort» в файл hepaster.yml. Я изменил исходные файлы в кучу, и вы можете найти их here. Посмотрите мой файл readme, как получить доступ к метрикам. Дополнительные показатели доступны here.
Метрики можно получить через веб-браузер, обратившись к http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate. Тот же результат можно увидеть, выполнив следующую команду.
$ curl -L http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate
Эй Тим, я неясно, что вы пытаетесь сделать именно (так как в целом я еще новичок в Kubernetes) – adrian
Вы имеете в виду, что команды примера я отправил делаю? Он отправляет запрос POST в конечную точку «/ stats/container» узла и выводит результаты (в STDOUT). Команда 'kubectl get nodes -o = jsonpath =" {. Items [0] .metadata.name} "является просто причудливым способом захвата имени случайного узла. –
Есть ли синтаксическая ошибка в узлах get? Кажется, что это неудачно, когда я запускаю его на моем главном сервере. – adrian