Отслеживайте производительность кластера Kubernetes с помощью службы аналитики контейнеров

Используйте книги, диаграммы производительности и состояние работоспособности в аналитике контейнеров для мониторинга рабочей нагрузки кластеров Kubernetes, размещенных в Служба Azure Kubernetes (AKS), Azure Stack или другой среде.

Данная статья поможет вам понять эти две перспективы, а также узнать, как Azure Monitor помогает быстро оценить, исследовать и устранить обнаруженные проблемы.

Workbooks

Книги объединяют текст, запросы к журналу, метрики и параметры в многофункциональные интерактивные отчеты, позволяющие анализировать производительность кластера. Описание книг, доступных для аналитики контейнеров и их доступа, см. в книгах в аналитике контейнеров.

Мультикластерное представление из Azure Monitor

Azure Monitor предоставляет представление с несколькими кластерами, которое показывает состояние работоспособности всех отслеживаемых кластеров Kubernetes, развернутых в группах ресурсов в подписках. В нем также показаны кластеры, обнаруженные во всех средах, которые не отслеживаются решением. С помощью этого представления можно сразу понять работоспособность кластера, а затем перейти на страницу производительности узла и контроллера или просмотреть диаграммы производительности кластера. Для кластеров AKS, обнаруженных и идентифицированных как неуправляемых, можно включить мониторинг из представления.

Чтобы получить доступ к представлению с несколькими кластерами, выберите "Монитор" в левой области в портал Azure. В разделе Аналитика выберите Контейнеры.

Screenshot that shows an Azure Monitor multi-cluster dashboard example.

Вы можете ограничить результаты, представленные в сетке, чтобы отобразить следующие кластеры:

  • Azure: кластеры AKS и AKS-Engine, размещенные в службе Azure Kubernetes.
  • Azure Stack (предварительная версия): кластеры AKS Engine, размещенные в Azure Stack.
  • Не из Azure (предварительная версия): кластеры Kubernetes, размещенные в локальной среде.
  • Все: просмотр всех кластеров Kubernetes, размещенных в Azure, Azure Stack и локальных средах, которые подключены к службе аналитики контейнеров.

Чтобы просмотреть кластеры из определенной среды, выберите ее с помощью селектора Среда в левом верхнем углу.

Screenshot that shows an Environment selector example.

На вкладке Отслеживаемые кластеры можно получить следующие сведения.

  • Какое число кластеров находятся в критическом или в неработоспособном состоянии и какое число кластеров находятся в работоспособном состоянии или не передают данные (то есть находятся в неизвестном состоянии).
  • Являются ли все развертывания Azure Kubernetes Engine (AKS Engine) работоспособными.
  • Сколько узлов, пользовательских и системных модулей pod развернуто на кластер.

Здесь используются следующие состояния работоспособности:

  • Исправно. Для виртуальной машины не обнаружено никаких проблем, и она работает так, как нужно.
  • Критический. Обнаружена одна или несколько критических проблем, которые необходимо устранить для восстановления нормального рабочего состояния.
  • Предупреждение. Обнаружена одна или несколько проблем, без устранения которых состояние работоспособности может стать критическим.
  • Неизвестно. Если службе не удается установить подключение к узлу или pod, состояние изменяется на "Неизвестно".
  • Не найден. Рабочая область, группа ресурсов или подписка, содержащая рабочую область для этого решения, была удалена.
  • Не авторизовано. Пользователь не имеет необходимых разрешений для чтения данных в рабочей области.
  • Ошибка. Произошла ошибка при попытке чтения данных из рабочей области.
  • Неправильная конфигурация. Аналитика контейнеров не была правильно настроена в указанной рабочей области.
  • Нет данных. За последние 30 минут данные не поступали в рабочую область.

Состояние работоспособности определяет общее состояние кластера как наихудшее из трех состояний, но с одним исключением. Если какое-либо из трех состояний — "Неизвестно", то общее состояние кластера отображается как Неизвестно.

В следующей таблице приведена разбивка вычисления, управляющего состояниями работоспособности для отслеживаемого кластера в представлении нескольких кластеров.

Отслеживаемый кластер Состояние Доступность
Пользовательский pod Работоспособно
Предупреждение
Критически важно
Неизвестно
100%
90–99 %
<90 %
Не сообщалось за последние 30 минут
Системный pod Работоспособно
Предупреждение
Критически важно
Неизвестно
100%
Н/П
100 %
Не сообщалось за последние 30 минут
Node Работоспособно
Предупреждение
Критически важно
Неизвестно
>85 %
60–84 %
<60%
Не сообщалось за последние 30 минут

В списке кластеров можно выполнить детализацию до страницы Кластер, выбрав имя кластера. Затем можно перейти на страницу производительности Узлы, выбрав свертку узлов в столбце Узлы для этого конкретного кластера. Вы можете также перейти на страницу производительности Контроллеры, выбрав свертку столбца Пользовательские pod или Системные pod.

Просмотр производительности непосредственно из кластера

К аналитике контейнеров можно обратиться непосредственно из кластера AKS. Для этого выберите Аналитика>Кластер в левой области или сделайте это после выбора кластера в представлении с несколькими кластерами. Сведения о кластере можно посредством четырех перспектив:

  • Кластер
  • Узлы
  • Controllers
  • Контейнеры

Примечание.

Инструкции в оставшейся части этой статьи также подходят для просмотра состояния производительности и работоспособности кластеров Kubernetes, размещенных в Azure Stack или в другой среде, при их выборе в представлении с несколькими кластерами.

Откроется страница по умолчанию с четырьмя графиками производительности, отображающими ключевые метрики производительности кластера.

Screenshot that shows example performance charts on the Cluster tab.

На диаграммах производительности отображаются четыре метрики производительности:

  • Node CPU Utilization % (Доля загрузки ЦП узла): статистическая перспектива загрузки ЦП для всего кластера. Результаты для диапазона времени можно отфильтровать, выбрав Avg, Min, 50th, 90th, 95th или Max в селекторе процентилей над диаграммой. Фильтры можно использовать как по отдельности, так и в сочетании.
  • Node memory utilization % (Доля использования памяти узла): статистическая перспектива использования памяти для всего кластера. Результаты для диапазона времени можно отфильтровать, выбрав Avg, Min, 50th, 90th, 95th или Max в селекторе процентилей над диаграммой. Фильтры можно использовать как по отдельности, так и в сочетании.
  • Число узлов: число узлов и сведения о состоянии, полученные из Kubernetes. Состояния узлов кластера представлены в группах Всего, Готовы и Не готовы. Их можно фильтровать по отдельности или в сочетании с помощью селектора над диаграммой.
  • Active pod count (Число активных pod): число pod и сведения о состоянии, полученные из Kubernetes. Состояния объектов pod представлены в группах Всего, Ожидают, Выполняются, Неизвестно, Успешно и Сбой. Их можно фильтровать по отдельности или в сочетании с помощью селектора над диаграммой.

Используйте клавиши со стрелками влево и вправо для перемещения по точкам данных на диаграмме. Используйте клавиши со стрелками вверх и вниз для перемещения по линиям процентиля. Щелкнув значок закрепления в правом верхнем углу любой из диаграмм, можно закрепить выбранную диаграмму на последней просмотренной панели мониторинга Azure. На панели мониторинга вы можете изменить размер и положение диаграммы. Выбрав диаграмму на панели мониторинга, вы перейдете к аналитике контейнеров с соответствующими областью и представлением.

Служба аналитики контейнеров также поддерживает обозреватель метрик Azure Monitor, позволяющий создавать собственные точечные диаграммы, сопоставлять и исследовать тенденции, а также закреплять их на панелях мониторинга. В обозревателе метрик можно также использовать критерии, заданные для визуализации метрик, чтобы настраивать правила генерации оповещений на основе метрик.

Просмотр метрик контейнеров в обозревателе метрик

В обозревателе метрик можно просматривать агрегированные метрики использования узлов и объектов pod из аналитики контейнеров. В следующей таблице представлены сводные сведения, которые помогут понять, как использовать диаграммы метрик для визуализации метрик контейнеров.

Пространство имен Метрическая Description
insights.container/nodes
cpuUsageMillicores Совокупное измерение использования ЦП в кластере. В качестве единиц используются миллиядра. Это ядро ЦП, разбитое на 1000 единиц ("милли" означает тысячную часть). Используется для определения использования ядер в контейнере, где несколько приложений может использовать одно ядро.
cpuUsagePercentage Совокупная средняя загрузка ЦП в процентах в кластере.
memoryRssBytes Используемая память контейнера RSS (в байтах).
memoryRssPercentage Используемая память контейнера RSS (в процентах).
memoryWorkingSetBytes Использование памяти рабочего набора контейнера.
memoryWorkingSetPercentage Используемая память рабочего набора контейнера (в процентах).
nodesCount Число узлов, полученное из Kubernetes.
insights.container/pods
PodCount Число модулей pod, полученное из Kubernetes.

Можно разделить метрику, чтобы просмотреть ее по измерениям и наглядно сравнить разные сегменты. Для узла можно сегментировать диаграмму по измерению узла. Для pod диаграмму можно сегментировать по приведенным ниже измерениям.

  • Контроллер
  • Пространство имен Kubernetes
  • Узел
  • Этап

Анализ работоспособности узлов, контроллеров и контейнеров

При переключении на вкладку Узлы, Контроллеры или Контейнеры в правой области страницы автоматически отображается область свойств. В ней показаны свойства выбранного элемента, включая метки, определенные для упорядочивания объектов Kubernetes. При выборе узла Linux в разделе Емкость локального диска также отображается доступное место на диске и процент емкости, используемой для каждого диска на узле. Щелкните в области ссылку >>, чтобы отобразить или скрыть область.

При развертывании объектов в иерархии панель свойств обновляется на основе выбранного объекта. В области можно также просмотреть журналы контейнеров Kubernetes (stdout/stderr), события и метрики pod. Для этого откройте вкладку Трансляции в верхней части области. Дополнительные сведения о конфигурации, необходимой для предоставления и управления доступом для просмотра этих данных, см. в разделе "Настройка динамических данных".

При проверке ресурсов кластера эти данные можно просмотреть в контейнере в режиме реального времени. Дополнительные сведения об этой функции см. в разделе Просмотр журналов Kubernetes, событий и метрик Pod в режиме реального времени.

Чтобы просмотреть данные журналов Kubernetes, хранящиеся в рабочей области, на основе предварительно определенных запросов поиска по журналам, выберите Просмотреть журналы контейнера из раскрывающегося списка Просмотр в службе аналитике. Дополнительные сведения см. в разделе Отправка запросов к журналам из аналитики контейнеров.

Используйте параметр + Добавить фильтр в верхней части страницы, чтобы отфильтровать результаты для представления по параметрам Служба, Узел, Пространство имен или Пул узлов. Настроив область фильтра, выберите одно из значений, отображаемых в поле Выбрать значения. После настройки фильтра он применяется глобально при просмотре любой перспективы кластера AKS. Формула поддерживает только знак равенства. Поверх первого фильтра можно добавить дополнительные фильтры, чтобы сузить диапазон результатов. Например, если указать фильтр по узлу, то для второго фильтра можно выбрать только службу или пространство имен.

Если задать фильтр на одной вкладке, он продолжает применяться при выборе другого фильтра. Он удаляется после того, как вы щелкните символ х рядом с указанным фильтром.

Перейдите на вкладку Узлы. Иерархия строк будет соответствовать объектной модели Kubernetes, начиная с узла в кластере. Разверните узел, чтоб отобразить один или несколько запущенных на нем модулей pod. Если в модуль pod сгруппировано несколько контейнеров, они будут отображаться как последняя строка в иерархии. Вы можете также увидеть количество рабочих нагрузок, отличных от модулей pod, которые выполняются на узле, если узел испытывает нехватку ресурсов процессора или памяти.

Screenshot that shows an example of the Kubernetes Node hierarchy in the performance view.

Контейнеры Windows Server под управлением Windows Server 2019 отображаются в списке после всех узлов под управлением Linux. Развернув узел Windows Server, можно просмотреть один или несколько модулей pod и контейнеров, которые выполняются на данном узле. После выбора узла в области свойств отображаются сведения о версии.

Screenshot that shows an example Node hierarchy with Windows Server nodes listed.

Виртуальные узлы Экземпляров контейнеров Azure, работающие под управлением Linux, отображаются в списке после последнего узла кластера AKS. Развернув виртуальный узел Экземпляров контейнеров, можно просмотреть один или несколько модулей pod и контейнеров, которые выполняются на этом узле. Метрики собираются и предоставляются только для модулей pod, а не для узлов.

Screenshot that shows an example Node hierarchy with Container Instances listed.

На развернутом узле можно детализировать pod или контейнер, запущенные на этом узле, до контроллера, чтобы просмотреть данные о производительности, отфильтрованные по этому контроллеру. Выберите значение в столбце Контроллер для конкретного узла.

Screenshot that shows the drill-down from node to controller in the performance view.

Выберите контроллеры или контейнеры в верхней части страницы, чтобы просмотреть для них состояние и данные об использовании ресурсов. Чтобы просмотреть данные об использовании памяти, в раскрывающемся списке Метрика выберите RSS памяти или Рабочий набор памяти. Параметр Memory RSS (Память (RSS)) поддерживается только для Kubernetes версии 1.8 и более поздних. В противном случае значения Min % отображаются как NaN %. Это значение числового типа данных, представляющее неопределенное значение или значение, которое невозможно представить.

Screenshot that shows a Container nodes performance view.

В метрике Рабочий набор памяти отображается резидентная и виртуальная память (кэш), а также общий объем памяти, используемой приложениями. В метрике RSS памяти отображается только основная память (резидентная память). Эта метрика показывает фактическую емкость доступной памяти. В чем разница между резидентной и виртуальной памятью?

  • Резидентная или основная память — это фактический объем памяти компьютера, доступный узлам кластера.
  • Для виртуальной памяти резервируется пространство на жестком диске (кэш), используемое операционной системой для переноса данных из памяти на диск при нехватке памяти и последующего их переноса в память при необходимости.

По умолчанию используются данные о производительности за последние шесть часов, но вы можете изменить этот период с помощью параметра TimeRange, который расположен в верхнем левом углу. Также в диапазоне времени можно отфильтровать результаты, выбрав Min, Avg, 50th, 90th, 95th или Max в селекторе процентилей.

Screenshot that shows a percentile selection for data filtering.

При наведении указателя мыши на линейчатую диаграмму в столбце Trend (Тренд) каждая строка показывает использование памяти или ЦП в течение периода выборки 15 минут в зависимости от того, какая метрика выбрана. После выбора диаграммы тренда с помощью клавиатуры используйте клавиши ALT+PAGE UP или ALT+PAGE DOWN, чтобы циклически переключаться между отдельными столбцами. Отображаются те же сведения, что и при наведении указателя мыши на столбец.

Screenshot that shows a Trend bar chart hover-over example.

В следующем примере для первого узла в списке, aks-nodepool1-, значение параметра для Containers (Контейнеры) равно 25. Это сводное общее число развернутых контейнеров.

Screenshot that shows a rollup of containers-per-node example.

Эти сведения помогут быстро определить, правильно ли распределены контейнеры между узлами в кластере.

В следующей таблице описаны сведения, отображаемые при просмотре вкладки Узлы.

Столбец Описание:
Имя. Имя узла.
Состояние Представление Kubernetes о состоянии узла.
Min %, Avg %, 50th %, 90th %, 95th %, Max % Средний процент для узла на основе процентиля в течение выбранного периода времени.
Min, Avg, 50th, 90th, 95th, Max Среднее фактическое значение для узла на основе процентиля в течение выбранного периода времени. Среднее значение измеряется на основании лимита ресурсов ЦП и памяти, установленного для узла. Для модулей pod и контейнеров это среднее значение, сообщаемое узлом.
Контейнеры Число контейнеров.
Время работы Представляет время с момента запуска или перезапуска узла.
Контроллер Только для контейнеров и модулей pod. Показывает, в каком контроллере размещен контейнер или pod. Не все модули pod будут размещаться в контроллере, поэтому для некоторых может отображаться значение Н/Д.
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % Гистограмма тренда представляет средний процент метрики процентиля контроллера.

После развертывания узла Другой процесс вы могли заметить рабочую нагрузку. Она представляет неконтейнерные процессы, выполняемые на узле, и включает в себя:

  • самостоятельно управляемые или управляемые Kubernetes процессы, не являющиеся контейнерами;
  • процессы времени выполнения контейнера;
  • Kubelet;
  • системные процессы, запущенные на узле;
  • другие, не относящиеся к Kubernetes рабочие нагрузки, которые выполняются на оборудовании узла или виртуальной машине.

Это значение вычисляется по формуле: общее потребление по данным CAdvisor - потребление контейнерными процессами.

Выберите Контроллеры в селекторе.

Screenshot that shows selecting Controllers.]

Здесь можно просмотреть состояние производительности контроллеров и контроллеров виртуальных узлов Экземпляров контейнеров или модулей pod виртуальных узлов, не подключенных к контроллеру.

Screenshot that shows a \<Name> controllers performance view.

Иерархия строк начинается с контроллера. При развертывании контроллера отображается один или несколько модулей pod. Разверните pod, и в последней строке отобразится контейнер, сгруппированный в этот pod. Развернутый контроллер можно детализировать до узла, на котором он запущен, чтобы просмотреть данные производительности для этого узла. Модули pod Экземпляров контейнеров, которые не подключены к контроллеру, приведены в конце списка.

Screenshot that shows an example Controllers hierarchy with Container Instances pods listed.

Выберите значение в столбце Узел для конкретного контролера.

Screenshot that shows an example drill-down from controller to node in the performance view.

В следующей таблице описаны сведения, отображаемые при просмотре контроллеров.

Столбец Описание:
Имя. Имя контроллера.
Состояние Сводное состояние контейнеров после завершения выполнения, например OK, Terminated (Завершен), Failed (Сбой), Stopped (Остановлен) или Paused (Приостановлен). Если контейнер выполняется, но его состояние было неправильно представлено или не было выбрано агентом и не передавалось более 30 минут, то значением состояния будет Unknown (Неизвестно). В таблице ниже приведены дополнительные сведения о значке состояния.
Min %, Avg %, 50th %, 90th %, 95th %, Max % Сводное среднее значение среднего процента каждой сущности для выбранной метрики и процентиля.
Min, Avg, 50th, 90th, 95th, Max Сводное среднее значение производительности ЦП (в миллиардах) или памяти для контейнера для выбранного процентиля. Среднее значение измеряется на основании лимита ресурсов ЦП и памяти, установленного для pod.
Контейнеры Общее число контейнеров для контроллера или pod.
"Restarts" (Число перезапусков) Сводное число перезапусков из контейнеров.
Время работы Представляет время с момента запуска контейнера.
Узел Только для контейнеров и модулей pod. Показывает, в каком контроллере размещен контейнер или pod.
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % Гистограмма тренда представляет метрику процентиля контроллера.

Значки в поле состояния указывают состояние контейнеров.

Icon Состояние
Ready running status icon.
Waiting or Paused status icon. Ожидается или приостановлено
Last reported running status icon. Последнее выполнение зарегистрировано, но ответа нет более 30 минут
Successful status icon. Успешно остановлено или не удалось остановить

Значок состояния отображает число на основе сведений, предоставляемых модулем pod. Он показывает два худших состояния. При наведении указателя мыши на значок отображается сводное состояние всех объектов pod в контейнере. Если это не состояние готовности, отображается значение состояния (0).

Выберите Контейнеры в селекторе.

Screenshot that shows selecting Containers.

Здесь можно просмотреть состояние производительности контейнеров AKS и Экземпляров контейнеров Azure.

Screenshot that shows a \<Name> containers performance view.

Из контейнера можно перейти к сведениям pod или узла, чтобы просмотреть отобранные данные производительности для этого объекта. Щелкните значение в столбце Pod или Узел для конкретного контролера.

Screenshot that shows an example drill-down from node to containers in the performance view.

В следующей таблице приведены сведения, отображаемые при просмотре контейнеров.

Столбец Описание:
Имя. Имя контроллера.
Состояние Состояния контейнеров (при наличии). В таблице ниже приведены дополнительные сведения о значке состояния.
Min %, Avg %, 50th %, 90th %, 95th %, Max % Сводное значение среднего процента каждой сущности для выбранной метрики и процентиля.
Min, Avg, 50th, 90th, 95th, Max Сводное среднее значение производительности ЦП (в миллиардах) или памяти контейнера для выбранного процентиля. Среднее значение измеряется на основании лимита ресурсов ЦП и памяти, установленного для pod.
Объект pod Контейнер, в котором находится pod.
Узел  Узел, на котором размещен контейнер.
"Restarts" (Число перезапусков) Представляет время с момента запуска контейнера.
Время работы Представляет время с момента запуска или перезапуска контейнера.
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % Гистограмма тренда представляет средний процент метрики процентиля контроллера.

Значки в поле состояния указывают состояния модулей pod в режиме реального времени, как описано в следующей таблице.

Icon Состояние
Ready running status icon.
Waiting or Paused status icon. Ожидается или приостановлено
Last reported running status icon. Последнее выполнение зарегистрировано, но ответа нет более 30 минут
Terminated status icon. Успешно остановлено или не удалось остановить
Failed status icon. Состояние сбоя

Мониторинг и визуализация конфигураций сети

Диспетчер политики сети Azure поддерживает информативные метрики Prometheus, позволяющие отслеживать и анализировать конфигурацию сети. NPM предоставляет встроенные визуализации либо в портал Azure, либо в Grafana Labs. Дополнительные сведения см. в статье "Мониторинг и визуализация конфигураций сети" с помощью Azure npm.

Часто задаваемые вопросы

В этом разделы приводятся ответы на часто задаваемые вопросы.

Что представляет "Другие процессы" в представлении узла?

Параметр Другие процессы позволяет выяснить причину чрезмерного потребления ресурсов на узле. Эти сведения помогают различать использование контейнерных процессов и неконтейнеризированных процессов.

Что такое другие процессы?

Они неконтаинеризованы, которые выполняются на узле.

Как рассчитывается значение этого параметра?

Другие процессы = общего использования из CAdvisor - Usage из контейнеризованного процесса

К другим процессам относятся:

  • Самоуправляемые или управляемые процессы Kubernetes, отличные отcontainerized.
  • процессы времени выполнения контейнера;
  • Kubelet;
  • системные процессы, запущенные на узле;
  • другие, не относящиеся к Kubernetes рабочие нагрузки, которые выполняются на оборудовании узла или виртуальной машине.

Следующие шаги