Устранение распространённых проблем со здоровьем рабочих нагрузок Kubernetes

Материал из Документация Ключ-АСТРОМ
Версия от 12:24, 21 сентября 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Устранение распространённых проблем со здоровьем рабочих нагрузок Kubernetes = Даже при надёжной инфраструктуре могут возникать проблемы, приводящие к снижению качества обслуживания или, в худшем случае, к ошибкам, видимым пользователям. Работа с '''Kubernete...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Устранение распространённых проблем со здоровьем рабочих нагрузок Kubernetes

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

Это руководство предназначено для специалистов по эксплуатации, DevOps и DevSecOps, управляющих кластерами Kubernetes. Предполагается базовое понимание концепций Kubernetes, таких как запросы/лимиты ресурсов, поды и ноды, однако экспертиза в Ключ-АСТРОМ или управлении кластерами не требуется.

Сценарий

  • В приложении Kubernetes для кластеров и рабочих нагрузок появляются индикаторы ошибок или предупреждений.
  • Состояние здоровья от Ключ-АСТРОМ Intelligence отображается жёлтым или красным для определённых рабочих нагрузок, нод или кластеров.

Предварительные требования

  • Доступ к кластеру Kubernetes.
  • Настроен новый опыт работы с Kubernetes.

Выявление и устранение проблем со здоровьем

Следующие шаги проведут вас через этапы выявления проблемных рабочих нагрузок в ваших кластерах и процесс их устранения.

1. Выявление проблемных рабочих нагрузок

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

Среди перечисленных рабочих нагрузок вы можете видеть, что рабочая нагрузка prom-problem-sim проявляет признаки проблем.

2. Анализ проблем рабочей нагрузки

Мы выявили важную рабочую нагрузку, отображающую проблемы, которые делают её нездоровой. Чтобы лучше понять основные проблемы, мы рассмотрим эту рабочую нагрузку подробнее.

На странице рабочей нагрузки просмотрите индикаторы проблем, отображаемые вверху (например, Использование CPU близко к лимитам).

Выберите Использование CPU близко к лимитам, чтобы войти в режим проблемы. Ключ-АСТРОМ открывает специальное представление проблемы, где вы можете:

  • Увидеть точную формулировку проблемы и её длительность.
  • Понять, почему рабочая нагрузка затронута (например, превышены лимиты CPU или обнаружен троттлинг).
  • Сопоставить использование ресурсов (например, CPU и память) с проблемой.

Находясь в режиме проблемы, перейдите на вкладку Использование. Ключ-АСТРОМ автоматически выделяет затронутый ресурс (например, CPU) и накладывает проблему на соответствующий график. Это помогает увидеть, как использование ресурсов связано с активной проблемой.

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

Под графиком список событий предоставляет подробные сообщения платформы, такие как OOMKilled, за которыми следуют события Created и Started контейнера. Эта последовательность указывает на то, что контейнер превысил свой лимит памяти и был завершён Kubernetes.

3. Устранение проблем рабочей нагрузки

Временная шкала событий показывает повторяющиеся сгруппированные события, которые представляют перезапуски контейнера. В списке событий записи OOMKilled сопровождаются событиями Created и Started для контейнера prometheus-problem-simulator. Эта последовательность указывает на то, что контейнер превысил свой лимит памяти, был завершён kubelet, а затем автоматически пересоздан Kubernetes.

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

4. Исследование редких проблем рабочей нагрузки

Большинство проблем можно найти и исследовать, следуя шагам, описанным выше. Однако некоторые проблемы могут быть более сложными, поскольку они не происходят регулярно или возникают с большими интервалами. Ключ-АСТРОМ помогает преодолеть эти трудности, выделяя ключевые метрики и предоставляя полезные подсказки в Kubernetes (new).

Распространённая и потенциально проблемная ситуация связана с завершением контейнеров из-за нехватки памяти (OOM). Ключ-АСТРОМ может помочь обнаружить такие инциденты. В перспективе здоровья списка рабочих нагрузок есть специальный столбец, отображающий события OOM kill для каждой рабочей нагрузки.

Учитывая, что Kubernetes (new) отображает текущее состояние вашей среды Kubernetes, мы можем использовать возможности DQL для выявления рабочих нагрузок с OOM kill за любой выбранный период времени.

Это достигается с помощью Notebooks, куда добавляется следующий запрос DQL.

// Aggregate OOM kills per pod over time
timeseries values = sum(dt.kubernetes.container.oom_kills, rollup:sum),
  by:{ dt.smartscape.k8s_pod },
  filter: isNotNull(dt.smartscape.k8s_pod)
// calculate total OOM kills and retain pod id for lookup
| fieldsAdd container_oom_kills = toLong(arraySum(values)), dt.smartscape.k8s_pod
// fetch pod metadata
| lookup [
  smartscapeNodes { K8S_POD }
], sourceField: dt.smartscape.k8s_pod, lookupField:id, fields:{k8s.workload.name, k8s.workload.kind, name, type}, executionOrder:leftFirst
// select fields for the result
| fields dt.smartscape.k8s_pod, type, k8s.workload.name, k8s.workload.kind, name, container_oom_kills
// order by OOM kill count in descending order
| sort container_oom_kills desc

Этот запрос создаёт таблицу со списком рабочих нагрузок, у которых были OOM kill за последние 7 дней, включая сведения о том, установлены ли у них лимиты памяти и изменялись ли эти лимиты в течение указанного периода.