Skip to content

Моделируем поломку

Скрипт по развертыванию подов с интервалом в 2 секунды:

#!/bin/bash

# Указываем имя пода и образ, который будет использоваться
POD_NAME_PREFIX="my-pod"
IMAGE="nginx"

# Бесконечный цикл для создания подов
while true; do
  # Генерируем уникальное имя для пода
  POD_NAME="${POD_NAME_PREFIX}-$(date +%s%N)"

  # Создаем под
  kubectl run $POD_NAME --image=$IMAGE

  # Ждем 2 секунды перед созданием следующего пода
  sleep 2
done
Скрипт по удалению подов:
#!/bin/bash

# Указываем префикс имени пода
POD_NAME_PREFIX="my-pod"

# Получаем список всех подов с указанным префиксом имени
PODS=$(kubectl get pods -o jsonpath="{.items[*].metadata.name}" | tr ' ' '\n' | grep "^${POD_NAME_PREFIX}")

# Удаляем все найденные поды
kubectl delete pods $PODS

Postmortem

  1. Скрипт был запущен в 16:03, остановлен ~16:07. Было создано 90 подов. Нагрузка на api сервер росла (см. фото ниже), но кластер работал, все поды были в статусе Running. alt text
  2. На этапе удаления всех подов получили ошибку: "Error from server: etcdserver: request timed out".
    Image title

  3. Запустили скрипт повторно, и поды продолжили удаляться. Нагрузка на api сервер росла (см. фото выше).

  4. После удаления поды перешли в статус Terminating: Image title

  5. Запрос kubectl get pods очень долго выполнялся и периодически выдавал ошибки:

    • Error from server (Timeout): the server was unable to return a response in the time allotted, but may still be processing the request (get pods)
    • Unable to connect to the server: net/http: TLS handshake timeout
  6. Prometheus выдавал ошибку: "Error executing query: Failed to fetch".
    Image title

  7. Victoria Metrics выдавала ошибку: "ERROR: 503, error occured during search: cannot fetch query results from vmstorage nodes: cannot perform search on vmstorage victoria-metrics-victoria-metrics-cluster-vmstorage-1.victoria-metrics-victoria-metrics-cluster-vmstorage.default.svc.cluster.local.:8401: cannot obtain connection from a pool: cannot dial victoria-metrics-victoria-metrics-cluster-vmstorage-1.victoria-metrics-victoria-metrics-cluster-vmstorage.default.svc.cluster.local.:8401: dial tcp4: lookup victoria-metrics-victoria-metrics-cluster-vmstorage-1.victoria-metrics-victoria-metrics-cluster-vmstorage.default.svc.cluster.local. on 10.96.0.10:53: read udp 10.244.0.247:37372->10.96.0.10:53: read: connection refused". Image title

  8. UI Grafana упал.

Спустя 1 час 20 минут

  1. Все поды удалились. Image title
  2. Перезапустили port-forwarding для Grafana. Стали отображаться метрики. Но на момент поломки кластера с 16:10 до 17:20 метрики отсутствуют. Image title

  3. Victoria Metrics выдает новую ошибку: "Error executing query: Failed to fetch".
    Image title

  4. Prometheus выдает новую ошибку: "Error executing query: Failed to fetch. Please check your serverURL settings and confirm server availability."
    Image title