Проблема :
Повторяющиеся данные при запросе от Прометея для метрик из kube-state-metrics .
Пример запроса и результат с 3 экземпляры метрики состояния куба работает:
Запрос:
kube_pod_container_resource_requests_cpu_cores{namespace="ns-dummy"}
Метрика
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.35.142:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-34-25.ec2.internal",pod="app1-appname-6bd9d8d978-gfk7f",service="prom-kube-state-metrics"}
1
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.35.142:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-35-22.ec2.internal",pod="app2-appname-ccbdfc7c8-g9x6s",service="prom-kube-state-metrics"}
1
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.35.17:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-34-25.ec2.internal",pod="app1-appname-6bd9d8d978-gfk7f",service="prom-kube-state-metrics"}
1
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.35.17:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-35-22.ec2.internal",pod="app2-appname-ccbdfc7c8-g9x6s",service="prom-kube-state-metrics"}
1
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.37.171:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-34-25.ec2.internal",pod="app1-appname-6bd9d8d978-gfk7f",service="prom-kube-state-metrics"}
1
kube_pod_container_resource_requests_cpu_cores{container="appname",endpoint="http",instance="172.232.37.171:8080",job="kube-state-metrics",namespace="ns-dummy",node="ip-172-232-35-22.ec2.internal",pod="app2-appname-ccbdfc7c8-g9x6s",service="prom-kube-state-metrics"}
Наблюдение :
Каждый показатель c возрастает Nx, когда N модулей работают для kube-state-metrics . Если запущен один модуль, мы получим правильную информацию.
Возможные решения :
- Уменьшите до одного экземпляра показателей состояния куба. (Снижение доступности является проблемой)
- Включить шардинг. (Решает проблему дублирования, все еще менее доступно)
Согласно документам , для горизонтального масштабирования мы должны передавать аргументы шардинга модулям.
Осколки ноль индексируется. Таким образом, мы должны передать индекс и общее количество шардов для каждого модуля.
Мы используем Диаграмма Хелма , и она развернута как развертывание.
Вопросы :
- Как мы можем передать различные аргументы различным модулям в этом сценарии, если это возможно?
- Должны ли мы волноваться о доступности показателей состояния куба с учетом самовосстановления природы рабочих нагрузок k8s?
- Когда мы должны масштабировать его на несколько экземпляров и как?