Создать контейнер для основного процесса. Один для веб-сервера, один для сервера приложений.
Если контейнеры всегда будут иметь отношение один к одному и должны запускаться вместе, контейнеры можно запланировать в одном и том же Pod (или, как упоминалось в @sfgroups, входной контроллер может позаботиться о вашем нужен веб-сервер).
Kubernetes - это планировщик рабочей нагрузки, который извлекает выгоду из знания состояния выполняемых им процессов. Чтобы запустить несколько процессов в контейнере, вам нужно добавить слой управления процессами, обычно начиная с фоновой обработки в скрипте, используя ./app &
, сталкиваясь с проблемами, затем какой-то тип init
системы, такой как s6
container-runtime c-r c-r
| | |
init VS web app
/ \
web app
Если вы начнете добавлять уровни управления процессами между Kubernetes и управляемыми процессами, состояние, которое Kubernetes может обнаружить, начинает становиться нечетким.
Что происходит, когда сеть не работает, но приложение работает? Как вы управляете журналами из двух процессов? Как вы отлаживаете сбойный процесс, когда инициализация продолжается, и Kubernetes думает, что все хорошо. Есть ряд вещей, которые начинают становиться собственными решениями, а не использовать функциональность, которую уже предоставляет Kubernetes.