Мониторинг развертываний рабочих нагрузок
Этот материал входит в цикл статей. Начните с обзора.
Важно отслеживать работоспособность и производительность рабочих нагрузок Kubernetes, чтобы обеспечить оптимальную работу. Служба Azure Kubernetes (AKS) имеет несколько средств, которые можно использовать для проверка работоспособности и производительности развертываний, DaemonSet
функций и служб.
Инструменты
Важно определить, выполняются ли все развертывания и DaemonSet
компоненты. В этой статье описывается, как определить, соответствуют ли реплика в готовых и доступных состояниях ожидаемый реплика счетчик с помощью:
- Портал Azure.
- Функция аналитики контейнеров Azure Monitor.
- Средство командной строки kubectl.
- Prometheus и Grafana.
Портал Azure
Вы можете использовать портал Azure для проверки работоспособности следующих компонентов в рабочих нагрузках. Дополнительные сведения см. в разделе "Доступ к ресурсам Kubernetes" из портал Azure.
Развертывание, ReplicaSet
, StatefulSet
и DaemonSet
Убедитесь, что количество реплика, которые находятся в состоянии готовности, соответствует количеству требуемых реплика. На портале показано:
Количество реплика, доступных и готовых к обработке трафика. Эти реплика успешно запланированы на рабочие узлы, завершили процесс запуска и передали их готовность проверка.
Требуемое количество реплика, указанное для развертывания, или количество реплика, которые предназначено для обслуживания развертывания. Контроллер развертывания Kubernetes постоянно отслеживает состояние развертывания и гарантирует, что фактическое количество реплика соответствует требуемому числу.
Службы и объекты входящего трафика
Убедитесь, что состояние включено для всех служб и входящего трафика.
Хранилище
Убедитесь, что состояние привязано ко всем утверждениям постоянного тома и постоянным томам.
Аналитика контейнеров
Аналитика контейнеров — это функция Монитора, которая предоставляет возможности мониторинга для рабочих нагрузок контейнеров, развернутых в AKS или управляемых Kubernetes с поддержкой Azure Arc. Эта функция собирает сведения о производительности и работоспособности, такие как метрики памяти и процессора из контроллеров, узлов и контейнеров. Он также записывает журналы контейнеров для анализа.
Для анализа собранных данных можно использовать различные представления и предварительно созданные книги. Изучите производительность и поведение различных компонентов в кластере. С помощью аналитики контейнеров вы можете получить аналитические сведения о общем состоянии рабочих нагрузок контейнеров, чтобы вы могли принимать обоснованные решения для оптимизации производительности и устранения неполадок.
Вы можете использовать аналитику контейнеров для:
Определите узкие места ресурсов, определив контейнеры, выполняемые на каждом узле, и их процессор и использование памяти.
Определите использование процессоров и памяти групп контейнеров и их контейнеров, размещенных в экземплярах контейнеров.
Вы можете просматривать общие сведения о производительности контроллера или pod, определив место расположение контейнера в контроллере или pod.
Просмотрите использование ресурсов рабочих нагрузок, выполняемых на узле, и не связаны со стандартными процессами, поддерживающими pod.
Изучите поведение кластера при средней и тяжелой нагрузке, чтобы определить потребности в емкости и определить максимальную нагрузку, которую может поддерживать кластер.
Доступ к журналам и метрикам динамического контейнера, создаваемым подсистемой контейнеров, чтобы устранить неполадки в реальном времени.
Настройте оповещения для упреждающего уведомления или записи при использовании ЦП и памяти на узлах или контейнерах, превышающих пороговые значения, или при изменении состояния работоспособности в кластере на свертки работоспособности инфраструктуры или узлов.
В портал Azure аналитика контейнеров предоставляет несколько средств для мониторинга и анализа работоспособности и производительности кластера AKS.
Кластер. Эта функция содержит общие сведения о кластере AKS, включая ключевые метрики, такие как использование ЦП и памяти, количество модулей pod и узлов, а также сетевой трафик. Вы можете получить аналитические сведения об общем использовании работоспособности и ресурса кластера.
Отчеты. Эта функция предоставляет предварительно созданные отчеты, которые можно использовать для визуализации и анализа различных аспектов производительности кластера, таких как использование ресурсов, работоспособность pod и аналитика контейнеров. Эти данные помогают понять поведение и производительность контейнеров и рабочих нагрузок.
Узлы. Эта функция содержит подробные сведения о узлах в кластере. В нем показаны метрики для использования ЦП и памяти, дисков и сетевых операций ввода-вывода, а также условия и состояние каждого узла. Эти данные можно использовать для мониторинга производительности отдельных узлов, выявления потенциальных узких мест и обеспечения эффективного распределения ресурсов.
Контроллеры: эта функция обеспечивает видимость контроллеров Kubernetes в кластере AKS. В нем отображаются такие сведения, как количество экземпляров контроллера, текущее состояние и состояние операций контроллера. Вы можете отслеживать работоспособность и производительность контроллеров, которые управляют развертываниями рабочих нагрузок, службами и другими ресурсами.
Контейнеры: эта функция предоставляет аналитические сведения о контейнерах, работающих в кластере AKS. Он предоставляет сведения, связанные с использованием ресурсов, перезапусками и событиями жизненного цикла каждого контейнера. Эти данные можно использовать для мониторинга и устранения неполадок контейнеров в рабочих нагрузках.
Динамические журналы: функция динамических журналов предоставляет поток событий журнала из запущенных контейнеров, чтобы просматривать журналы контейнеров в режиме реального времени. Эти данные можно использовать для эффективного мониторинга и устранения неполадок приложений, а также быстрого выявления и устранения проблем в контейнерах.
Дополнительные сведения см. на следующих ресурсах:
- Мониторинг производительности кластера Kubernetes с помощью аналитики контейнеров
- Настройка мониторинга GPU с помощью аналитики контейнеров
- Мониторинг и визуализация конфигураций сети с помощью диспетчера сетевых политик Azure
- Мониторинг развертываний и метрик HPA с помощью аналитики контейнеров
- Мониторинг метрик постоянного тома (PV)
- Мониторинг безопасности с помощью системного журнала
- Отчеты в аналитике контейнеров
- Метрики, собранные аналитикой контейнеров
- Просмотр журналов Kubernetes, событий и метрик Pod в режиме реального времени
- Просмотр метрик кластера в режиме реального времени
Программа командной строки
Чтобы проверка состояние рабочих нагрузок, можно использовать средство командной строки kubectl для взаимодействия с плоскостью управления кластера Kubernetes через API Kubernetes.
Объекты pod
Чтобы вывести список модулей pod, выполняемых во всех пространствах имен, выполните следующую команду:
kubectl get pod -A
В выходных данных команды столбец READY предоставляет важные сведения о состоянии готовности контейнеров pod.
Первое число обозначает количество контейнеров, которые в настоящее время находятся в состоянии готовности. Эти контейнеры прошли пробы готовности и готовы обрабатывать входящий трафик. Второй номер представляет общее количество контейнеров, определенных в модуле pod, независимо от их состояния готовности. Он включает контейнеры, готовые и инициализированные или возникающие проблемы.
Убедитесь, что первое число (готовые контейнеры) соответствует второму номеру (общему количеству контейнеров) для модуля pod. Если они отличаются, некоторые контейнеры могут не быть готовыми или могут возникнуть проблемы, чтобы предотвратить их достижение готового состояния.
Развертывание, StatefulSet
, DaemonSet
и StatefulSet
Выполните следующую команду, чтобы получить развертывания во всех пространствах имен:
kubectl get deploy -A
В выходных данных kubectl get deploy
команды числа в столбце READY указывают текущее состояние готовности реплика в развертывании.
Первое число представляет количество реплика, готовых и доступных для обслуживания трафика. Эти реплика успешно начали и прошли их готовность проверка. Второй номер представляет требуемое количество реплика, указанное в конфигурации развертывания. Это целевое число реплика, которые развертывание предназначено для поддержания.
Важно убедиться, что первое число соответствует второму номеру. Это означает, что требуемое количество реплика запущено и готово. Любое несоответствие между двумя числами может указывать на проблемы масштабирования или готовности, которые необходимо устранить.
Выполните следующую команду, чтобы получить функции StatefulSet во всех пространствах имен:
kubectl get statefulset -A
Выполните следующую команду, чтобы получить функции DaemonSet во всех пространствах имен:
kubectl get ds -A
Вы можете выполнить kubectl get ds
команду, чтобы убедиться, что DaemonSet
выполняется как ожидалось. Например, можно выполнить следующую команду, чтобы убедиться, что агент аналитики контейнеров успешно развернут:
kubectl get ds ama-logs --namespace=kube-system
Аналогичным образом, если вы настроите кластер AKS для сбора метрик Prometheus в Monitor для управляемого Prometheus, можно выполнить следующую команду, чтобы убедиться, что DaemonSet
он развернут правильно в пулах узлов Linux:
kubectl get ds ama-metrics-node --namespace=kube-system
В этом выходных данных содержатся сведения о функциях DaemonSet
в кластере. Проверьте выходные данные, чтобы убедиться, что количество модулей pod в готовых, текущих и нужных состояниях совпадают. Если они одинаковы, требуемое количество модулей pod, указанных в DaemonSet
конфигурации, равно количеству модулей pod, которые в настоящее время выполняются и готовы.
Мы рекомендуем выполнить те же проверка для функций ReplicaSet. Для получения ReplicaSet
функций во всех пространствах имен можно использовать следующую команду:
kubectl get rs -A
Убедитесь, что числа в этом выходных данных одинаковы для каждого состояния, чтобы предполагаемое число модулей pod или реплика выполнялось должным образом. Несоответствия могут указывать на необходимость дальнейшего изучения или устранения неполадок с помощью одной из следующих команд.
Kubectl описание. Вы можете использовать команду kubectl описания для получения подробных сведений о ресурсах Kubernetes, таких как pod, развертывания и службы. Вы можете получить полный обзор указанного ресурса, включая текущее состояние, события, условия и связанные метаданные. Сведения извлекаются с сервера API Kubernetes. Эта команда полезна для устранения неполадок и понимания состояния ресурса.
kubectl describe pod <pod-name>
Чтобы получить подробные сведения о конкретном модуле pod, включая текущее состояние, события, метки и связанные с ним контейнеры. В выходных данных отображаются такие сведения, как состояние pod, события, тома и условия.
Журналы kubectl: вы можете использовать команду kubectl logs для получения журналов , созданных контейнером в модуле pod. Эта команда полезна для отладки и устранения неполадок. Журналы можно просмотреть в режиме реального времени или получить журналы журнала из контейнера.
Для просмотра журналов контейнеров можно использовать команду kubectl logs <pod-name> -c <container-name>
. Замените <pod-name>
именем модуля pod. Замените <container-name>
именем контейнера, из которого требуется получить журналы. Если в модуле pod есть только один контейнер, вам не нужно указывать имя контейнера. Вы также можете использовать -f
флаг, kubectl logs
чтобы следовать журналам в режиме реального времени. Этот флаг аналогичен команде tail -f
Linux.
События kubectl: вы можете использовать команду событий kubectl для устранения неполадок при развертывании, DaemonSet
ReplicaSet
или pod не запускается или не сталкивается с проблемой во время запуска. Эта команда предоставляет хронологический список событий, связанных с указанным ресурсом. Вы можете получить аналитические сведения о том, что могло вызвать проблему.
Для использования kubectl events
можно выполнить команду kubectl events
, за которой следует определенное имя ресурса. Кроме того, можно использовать селекторы для фильтрации событий на основе меток, пространств имен или других критериев.
Например, чтобы получить события, связанные с определенным модулем pod, можно запустить kubectl events --field-selector involvedObject.name=<pod-name> --field-selector involvedObject.kind=Pod
. Замените <pod-name>
именем модуля pod, который требуется исследовать. Выходные данные kubectl events
команды отображают такие сведения, как тип события (обычное или предупреждение), сообщение о событии, причина события и метка времени при возникновении события. Эти сведения помогут определить, что вызвало сбой или проблему во время запуска.
Если вы подозреваете, что определенный ресурс, например развертывание, DaemonSet
или ReplicaSet
возникают проблемы, можно фильтровать события с помощью селекторов. Например, отображаются события, kubectl events --field-selector involvedObject.name=<deployment-name> --field-selector involvedObject.kind=Deployment
связанные с определенным развертыванием. Изучите события, чтобы получить важные сведения о потенциальных ошибках, сбоях или других событиях, которые могли препятствовать правильному запуску ресурса. Используйте эти данные для устранения неполадок и устранения проблем, влияющих на ресурс.
Мониторинг в кластере с помощью Prometheus и Grafana
При развертывании Prometheus и Grafana в кластере AKS можно использовать панель мониторинга сведений о кластере K8 для получения аналитических сведений. Эта панель мониторинга содержит сведения, собранные из метрик кластера Prometheus, таких как использование ЦП и памяти, сетевое действие и использование файловой системы. В нем также показаны подробные статистические данные для отдельных модулей pod, контейнеров и системных служб.
Чтобы обеспечить работоспособность и производительность развертываний, заданий, модулей pod и контейнеров, можно использовать функции на панели мониторинга. Выберите развертывания, чтобы просмотреть количество реплика для каждого развертывания и общее количество реплика. Выберите контейнеры для просмотра диаграммы, на котором показаны запущенные, ожидающие, неудачные и успешные контейнеры.
Мониторинг управляемой службы для Prometheus и Управляемой Grafana Azure
Предварительно созданные панели мониторинга можно использовать для визуализации и анализа метрик Prometheus. Для этого необходимо настроить кластер AKS для сбора метрик Prometheus в управляемой службе Monitor для Prometheus и подключения рабочей области Monitor к рабочей области Azure Managed Grafana.
Установите предварительно созданные панели мониторинга , чтобы получить комплексное представление о производительности и работоспособности кластера Kubernetes. Подробные инструкции по установке см. в разделе "Микс мониторинга Prometheus" для Kubernetes. Панели мониторинга подготавливаются в указанном экземпляре Управляемой Grafana Azure в папке Managed Prometheus . К некоторым панелям мониторинга относятся:
- Kubernetes / Вычислительные ресурсы или кластер
- Kubernetes / Вычислительные ресурсы / пространство имен (Pods)
- Kubernetes / Вычислительные ресурсы / Узел (Pods)
- Kubernetes / Вычислительные ресурсы / Pod
- Kubernetes / Вычислительные ресурсы / пространство имен (рабочие нагрузки)
- Kubernetes / Вычислительные ресурсы / Рабочая нагрузка
- Kubernetes / Kubelet
- Метод "Экспортер узлов" / "Метод USE" / Node
- Экспортер узлов или узлы
- Kubernetes / Вычислительные ресурсы / кластер (Windows)
- Kubernetes / Вычислительные ресурсы / пространство имен (Windows)
- Kubernetes / Вычислительные ресурсы / Pod (Windows)
- Kubernetes / USE Method / Cluster (Windows)
- Kubernetes / USE Method / Node (Windows)
Эти встроенные панели мониторинга широко используются в сообществе с открытым кодом для мониторинга кластеров Kubernetes с помощью Prometheus и Grafana. Используйте эти панели мониторинга для просмотра метрик, таких как использование ресурсов, работоспособности pod и сетевое действие. Вы также можете создавать пользовательские панели мониторинга, адаптированные к вашим потребностям мониторинга. Панели мониторинга помогают эффективно отслеживать и анализировать метрики Prometheus в кластере AKS, что позволяет оптимизировать производительность, устранять проблемы и обеспечивать плавную работу рабочих нагрузок Kubernetes.
Панель мониторинга Kubernetes / Вычислительные ресурсы / Узлы (Pod) позволяет просматривать метрики для узлов агента Linux. Вы можете визуализировать использование ЦП, квоту ЦП, использование памяти и квоту памяти для каждого модуля pod.
Панель мониторинга Kubernetes / Вычислительные ресурсы / Pod Grafana предоставляет аналитические сведения о потреблении ресурсов и метриках производительности выбранного кластера, пространства имен и pod. Эту панель мониторинга можно использовать для получения метрик, связанных с использованием ЦП, регулированием ЦП, квотой ЦП, использованием памяти, квотой памяти, сетевыми метриками и метриками хранилища. На панели мониторинга выберите кластер AKS, пространство имен и pod в выбранном пространстве имен, чтобы просмотреть следующие сведения:
Использование ЦП. На этой диаграмме показано использование ЦП с течением времени для выбранного модуля pod. Вы можете просмотреть шаблон потребления ЦП и определить потенциальные пики или аномалии.
Регулирование ЦП. Эта диаграмма предоставляет аналитические сведения о регулировании ЦП, что происходит, когда модуль pod превышает ограничения ресурсов ЦП. Отслеживайте эту метрику, чтобы определить области, в которых производительность pod ограничена из-за регулирования ЦП.
Квота ЦП. На этой диаграмме показана выделенная квота ЦП для выбранного модуля pod. Если модуль pod превышает назначенную квоту ЦП, может потребоваться корректировка ресурсов.
Использование памяти. На этой диаграмме представлено использование памяти выбранного модуля pod. Отслеживайте шаблон потребления памяти и определите все проблемы, связанные с памятью.
Квота памяти. На этой диаграмме отображается выделенная квота памяти для pod. Если модуль pod превышает назначенную квоту памяти, это может указывать на необходимость оптимизации ресурсов.
Сетевые метрики: эти диаграммы показывают полученную и передаваемую пропускную способность, а также скорость полученных и передаваемых пакетов. Эти метрики помогают отслеживать использование сети и обнаруживать потенциальные узкие места сети или аномалии.
служба хранилища метрики. В этом разделе содержатся сведения о метриках, связанных с хранилищем, таких как операции ввода-вывода в секунду (IOPS) и пропускная способность. Отслеживайте эти метрики, чтобы оценить производительность и эффективность хранилища pod.
Панель мониторинга Kubernetes / Вычислительные ресурсы / Pod Grafana позволяет получить аналитические сведения об использовании ресурсов, производительности и поведении модулей pod в кластере Kubernetes. Используйте эти сведения для оптимизации распределения ресурсов, устранения проблем с производительностью и принятия обоснованных решений для обеспечения плавной работы контейнерных рабочих нагрузок.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.
Автор субъекта:
- Паоло Сальватори | Главный инженер клиента
Другие участник:
- Кевин Харрис | Специалист по основным решениям
- Фрэнсис Сими Назарет | Старший технический специалист
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.