Files
tf_registry/HISTORY/incident-2026-08-31.md
T

3.0 KiB
Raw Blame History

Инцидент: tf-registry.containerk8s.services.ngcloud.ru отдаёт 503

Зафиксированные факты

  • tf-registry.containerk8s.services.ngcloud.ru резолвится в 5.172.178.231.
  • Запросы GET /healthz и GET /readyz возвращают HTTP/2 503 с телом nginx 503 Service Temporarily Unavailable.
  • Прямое подключение к 5.172.178.231:5000 не устанавливается (порт backend наружу не публикуется).
  • VM 5.172.178.213 доступна, но это ВМ для сборки — managed-контейнер к ней отношения не имеет.
  • Следовательно, запрос не доходит до Go-сервера: это недоступный или не запущенный upstream, а не ошибка обработчиков /healthz, /readyz или S3 readiness.

Диагностика образа (подтверждённые факты)

  • Docker Registry Gitea (gitea.services.ngcloud.ru/nail/tf_registry) был пуст: tags= (тегов нет).
  • docker manifest inspect ...:latestmanifest unknown; :0.0.2manifest unknown.
  • С ВМ 5.172.178.213 доступа до Gitea нет: TCP 194.31.9.41:443SYN-SENT, DNS lookup gitea.services.ngcloud.rui/o timeout, traceroute обрывается на 100.64.24.24. Общий интернет с ВМ работает (docker hub доступен).
  • Локальная машина (Krupski) имеет доступ до Gitea напрямую; docker login gitea.services.ngcloud.ru --username NaeelLogin Succeeded.
  • Образ собран на ВМ из текущего master (rsync), затем перенесён локально через docker save/scp/load.

Push образа 0.0.1 (выполнено)

  • docker push gitea.services.ngcloud.ru/nail/tf_registry:0.0.1 (с локальной машины) — успешно.
  • Digest: sha256:9a00836c916e2cae597e31dff2184a08550bd1be262bdba980d17de2943aa4a7
  • Проверка: docker pull gitea.services.ngcloud.ru/nail/tf_registry:0.0.1PULL_OK.
  • ID образа: sha256:3c76e53a7213d0404932aac6b8ad0dc0c254b35f14d6d3d420a18ba4ec07b0d3

Требуемое восстановление

  1. В Nubes Cloud открыть инстанс с доменом tf-registry.containerk8s.services.ngcloud.ru и проверить состояние deployment/реплик и событий запуска.
  2. Обновить registryPath на gitea.services.ngcloud.ru/nail/tf_registry:0.0.1 (образ с этим тегом уже опубликован).
  3. Проверить, что контейнер слушает PORT=5000, а healthcheck использует доступный путь.
  4. Выполнить redeploy через UI modify.
  5. После запуска проверить https://tf-registry.containerk8s.services.ngcloud.ru/healthz и /.well-known/terraform.json.