Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Мониторинг Kubernetes: поды, ноды, кластер
kubernetes_monitoring

Мониторинг Kubernetes: поды, ноды, кластер

Полный стек мониторинга K8s: kube-state-metrics, cAdvisor, node-exporter, сервис-дискавери

Мониторинг Kubernetes: поды, ноды, кластер

«Kubernetes без мониторинга — это черный ящик в production»

#Введение

Мониторинг Kubernetes требует трёх уровней наблюдаемости:

  1. Инфраструктура — ноды (CPU, память, диск, сеть)
  2. Контейнеры — использование ресурсов контейнерами
  3. Объекты K8s — поды, деплои, сервисы, daemonsets

#Компоненты стека

#Node Exporter

Собирает метрики нод (хостов):

  • node_cpu_seconds_total — CPU время по режимам
  • node_memory_MemAvailable_bytes — доступная память
  • node_disk_free_bytes — свободное место на диске
  • node_network_receive_bytes_total — сетевой трафик

Установка через Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install node-exporter prometheus-community/prometheus-node-exporter

#cAdvisor

Встроен в kubelet, собирает метрики контейнеров:

  • container_cpu_usage_seconds_total — CPU контейнера
  • container_memory_usage_bytes — использование памяти
  • container_fs_usage_bytes — использование диска

Доступ: https://<node-ip>:10250/metrics/cadvisor

#kube-state-metrics

Генерирует метрики о состоянии объектов K8s:

  • kube_pod_status_phase — фаза пода (Pending, Running...)
  • kube_deployment_status_replicas_available — доступные реплики
  • kube_service_info — информация о сервисах

Установка:

helm install ksm prometheus-community/kube-state-metrics

#Service Discovery для Kubernetes

#Скрапинг подов

scrape_configs: - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: # Скрапить только поды с аннотацией prometheus.io/scrape=true - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true # Порт из аннотации - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port] action: replace target_label: __address__ regex: (.+) replacement: $1

#Скрапинг нод

scrape_configs: - job_name: 'kubernetes-nodes' kubernetes_sd_configs: - role: node scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

#Ключевые метрики

#Pod CPU Usage

sum by (pod, namespace) ( rate(container_cpu_usage_seconds_total{image!=""}[5m]) )

#Pod Memory Usage

sum by (pod, namespace) ( container_memory_usage_bytes{image!=""} )

#Deployment Availability

kube_deployment_status_replicas_available / kube_deployment_spec_replicas * 100

#Pod Restart Rate

sum by (pod, namespace) ( rate(kube_pod_container_status_restarts_total[1h]) )

#Готовые дашборды

Импортируйте из Grafana:

  • Kubernetes / Compute Resources / Cluster (ID: 315)
  • Kubernetes / Compute Resources / Namespace (pods) (ID: 317)
  • Kubernetes StatefulSet (ID: 1038)

#Алерты

- alert: KubernetesPodCrashLooping expr: rate(kube_pod_container_status_restarts_total[15m]) * 60 * 5 > 0 for: 15m severity: warning - alert: KubernetesDeploymentReplicasMismatch expr: | kube_deployment_spec_replicas > kube_deployment_status_replicas_available for: 15m severity: warning - alert: KubernetesNodeNotReady expr: kube_node_status_condition{condition="Ready",status="true"} == 0 for: 15m severity: critical

Далее: Трейсинг в микросервисах: Jaeger и Tempo