У меня есть кластер из одного узла в контейнерном движке, который в режиме ожидания загружает процессор примерно на 40%, как видно на панели мониторинга.
Когда я просматриваю мониторинг, все модули показывают 0% загрузки процессора.
Когда я подключаюсь к экземпляру по ssh, я вижу, что основными виновниками являются docker, kubelet и heapster, но я не понимаю, какую работу они выполняют.
Если я посмотрю в логи, то увижу строки вроде следующих, повторяющиеся снова и снова много раз в секунду. Я предполагаю, что это связано.
gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="-job containers() = OK (0)"
gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="+job containers()"
gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="GET /containers/json"
Каким должен быть мой следующий шаг, чтобы выяснить, почему это происходит?
решение1
Недавно у меня возник тот же вопрос: https://serverfault.com/q/728211/310585
Ответ на вопрос «какую работу они выполняют» — «регистрация и мониторинг».
Чтобы предотвратить эти накладные расходы, вам просто нужно снять выбор с этих функций при создании кластера. В консоли разработчика есть флажки для них. В CLI добавьте опции --no-enable-cloud-logging --no-enable-cloud-monitoring
к gcloud container clusters create
команде.