Liveness probe обнаруживает зависший контейнер: после установленного числа неудач kubelet инициирует его остановку и перезапуск согласно restart policy. Это не обязательно создание нового Pod.
Исправьте COPY, зафиксируйте образ и зависимости, отключите DEBUG и запускайте процесс непривилегированным пользователем. Для полной воспроизводимости нужны digest и lock-файл с хешами.
ReadinessProbe должна быстро отвечать, способен ли этот экземпляр сейчас обслуживать трафик. Её провал убирает Pod из обычной маршрутизации Service, а не перезапускает контейнер.
Разделите инструменты по назначению: GitLab CI/Jenkins запускают pipeline, Argo CD управляет GitOps-доставкой в Kubernetes, Terraform описывает инфраструктуру. Затем назовите личный вклад.
Liveness проверяет, нужен ли перезапуск, readiness — можно ли направлять трафик, startup — закончилась ли начальная загрузка. Эти проверки должны иметь разные критерии.
Ansible читает inventory и playbook на управляющей машине, подключается к целевым узлам через connection plugin и выполняет соответствующие модули с заданными параметрами.
Разделите опыт создания Docker-образов, запуска контейнеров и работы с Kubernetes: Deployment, Service, конфигурация, ресурсы, проверки здоровья и диагностика.
Сильнее второй вариант: сначала файл зависимостей и их установка, затем исходники; приложение запускается непривилегированным пользователем. Он решает обе обозначенные проблемы.
Сначала разделите время ожидания соединения, собственно SQL и сетевую часть. Низкий CPU БД не исключает locks, насыщение пула, I/O или изменившийся маршрут после Kubernetes deployment.
Разделите ответ на ветвление, review, релизы и инструменты. Расскажите, как команда действительно работала и какую часть CI/CD или Docker-конфигурации делали лично.
Dockerfile описывает сборку образа, Docker запускает контейнеры, а Compose декларативно описывает совместный запуск сервисов, сетей и volumes. Это связанные инструменты разных уровней.