lenec ru

← все теги

#kubernetes

13 постов

Liveness, readiness, startup probes в Kubernetes: типичные ошибки и как настроить правильно

Probes — это та часть k8s, где даже опытные команды регулярно ловят пятёрки и шестёрки. Liveness убивает живой pod в момент пика нагрузки, readiness не отдаёт трафик после рестарта секунд тридцать,…

93 13K
Дмитрий Орлов

ArgoCD vs Flux: миграция с одного на другой и где грабли

В моём опыте кластеры с GitOps-инструментами делятся на два типа: те, что начали с ArgoCD, и те, что начали с Flux. И раз в пару лет в команду приходит человек с предыдущим опытом и предлагает…

59 10K
Дмитрий Орлов

Бэкап Postgres в Kubernetes: pgBackRest в Helm-чарте, который реально работает

Бэкап Postgres в k8s — это та тема, где много туториалов, но мало кто проверял restore. Я три раза попадал на ситуацию, когда бэкап был, скрипт pg_dump отрабатывал по cron, файлы лежали в S3, а…

99 17K
Дмитрий Орлов

Graceful shutdown в Go HTTP-сервисе: что обычно забывают

Когда HTTP-сервис на Go получает SIGTERM, мало просто закрыть слушающий сокет. Между «решил выключиться» и «полностью выгрузился» происходит десяток вещей, которые легко проспать. На проде это…

365 13K
Игорь Лебедев

Service discovery: client-side, server-side и где они ломаются

Сценарий, который повторяется на каждом проекте с микросервисами на старте: команда делает первые два сервиса, прописывает hardcoded URL http://orders-service:8080 в конфиге payments. Работает. Через…

468 16K
Алексей Морозов

requests vs limits в Kubernetes: реальная разница и как ставить адекватные значения

Когда приходишь в новый проект на k8s, первое, что бросается в глаза — это либо полное отсутствие resources у pod-ов, либо одинаковые requests/limits на всех контейнерах, скопированные из чужого…

155 14K
Дмитрий Орлов

Graceful shutdown: как корректно гасить сервис под нагрузкой

Сервис должен уметь умирать спокойно. На демках и в локальных тестах это выглядит непрактично — приложение работает, ну и пусть работает. В проде разница между корректным завершением и резким kill-9…

219 14K
Ирина Лисицына

ingress-nginx vs Traefik в 2026: что выбрать для нового кластера Kubernetes

Каждый раз, когда поднимаю новый кластер k8s, на этапе ingress начинается одно и то же: команда хочет ingress-nginx, потому что «все так делают», или Traefik, потому что «у него красивый дашборд». А…

330 10K
Дмитрий Орлов

Self-hosted runner для GitHub Actions на Kubernetes: как настроить с нуля

GitHub-hosted runners в стандартной подписке — это 2 vCPU, 7 ГБ RAM и 14 ГБ диска. Этого хватает на маленькие репозитории, но как только у тебя крупный монорепо с тестами, докер-сборками и e2e —…

361 14K
Дмитрий Орлов

HorizontalPodAutoscaler в Kubernetes: как настроить адекватный автоскейл по CPU и кастомным метрикам

HPA в k8s настраивается за пять строк YAML, и в этом проблема. Приклеил к Deployment targetCPUUtilizationPercentage: 70, поставил minReplicas: 2, maxReplicas: 10 — и спишь спокойно. Через месяц…

161 15K
Дмитрий Орлов

Как читать события Kubernetes и быстро находить причину, почему pod не стартует

Каждый раз, когда новый pod в кластере не поднимается, я открываю одно и то же окно терминала и иду по одному и тому же маршруту. За восемь лет работы с k8s у меня накопился короткий чек-лист команд,…

450 10K
Дмитрий Орлов

Graceful shutdown в Node.js: корректное завершение при deploy и в Docker

Connection pooling — это механизм переиспользования соединений с базой данных вместо создания нового подключения для каждого запроса. В Node.js-приложениях, работающих с PostgreSQL, правильная…

0 13K
Писатель Шесть

Health checks: liveness, readiness и startup probes на практике

Когда первый раз настраиваешь health checks в Kubernetes, кажется, что разница между liveness и readiness — формальность. Оба возвращают 200, оба смотрят на «жив ли сервис». Через пару инцидентов…

388 14K
Ирина Лисицына