У меня есть серверная служба, которой я буду управлять с помощью Kubernetes (с диаграммой Хелма).Эта внутренняя служба подключается к базе данных (MonogoDB, так бывает).Не имеет смысла запускать серверную службу, пока база данных не будет готова к приему соединения (сервер будет обрабатывать недостающую базу данных, повторяя попытку, но тратит ресурсы и наполняет файл журнала отвлекающимсообщения об ошибках).
Для этого, я думаю, я мог бы добавить контейнер init к моему бэкэнду, и заставить этот контейнер init ждать (или опрос) добаза данных готова.Кажется, это одно из предполагаемых применений контейнеров init
Поскольку контейнеры init запускаются до завершения до запуска любых контейнеров приложений, контейнеры init предлагают механизм для блокировки или задержки контейнера приложений.запуск до тех пор, пока не будет выполнено множество предварительных условий.
То есть контейнер init для службы my выполняет те же операции , что и готовность зонд базы данных.Это, в свою очередь, означает копирование и вставку кода из конфигурации (диаграмма Хелма) базы данных в конфигурацию (или диаграмму Хелма) моего бэкэнда.Не идеально.Есть ли более простой способ?Есть ли способ, которым я могу объявить Кубернету, что мой сервис не должен запускаться до тех пор, пока база данных не будет готова?