kube-apiserver высокая загрузка процессора и запросов
У нас есть кластеры Kubernetes 1.7.8, развернутые с Kops 1.7 в HA с тремя мастерами. Кластер имеет 10 узлов и около 400 модулей.
Кластер имеет кучи, прометей и ELK (сбор журналов для некоторых стручков).
Мы наблюдаем очень высокую активность мастеров, более 90% процессорного времени используется api-сервером.
Проверяя числа прометеев, мы видим, что около 5000 запросов к kube-apiserver являются глаголами WATCH, остальные менее 50 запросов (GET, LIST, PATCH, PUT).
Почти все запросы передаются с помощью клиента "Go-Http-client/2.0" (пользовательский агент по умолчанию для библиотеки Go HTTP).
Это нормальная ситуация?
Как мы можем отлаживать, какие модули отправляют эти запросы? (Как мы можем добавить исходный IP в логи kube-apiserver?)
[Kube-apiserver.manifest][1]
Спасибо чарльз
[1]: https://pastebin.com/nGxSXuZb
1 ответ
Что касается архитектуры Kubernetes, это нормальное поведение, потому что все компоненты кластера kubernetes вызывают api-сервер для отслеживания изменений.
Вот почему у вас есть более 5000 записей в журналах. Пожалуйста, посмотрите, как кластер kubernetes управляется сервером API Kube и как организована связь с главным узлом.