#node.js #deployment #kubernetes #google-cloud-platform
#node.js #развертывание #kubernetes #google-облачная платформа
Вопрос:
У меня есть приложение без состояния с 3 компонентами, скажем, x, y, z, в той же кодовой базе. Каждый компонент будет запущен путем проверки переменной среды. Я хочу развернуть его в Kubernetes на GCP, используя kind: Deployment
конфигурацию yaml с 3 модулями-репликами. Как я могу убедиться, что у каждого компонента есть отдельный выделенный модуль для него? Можно ли это сделать в одном файле развертывания?
Комментарии:
1. почему бы не выполнить 3 отдельных развертывания: x, y и z?
Ответ №1:
Как упоминал @Ivan Aracki в комментариях, лучшим способом было бы выделить каждый компонент приложения с соответствующим объектом развертывания, чтобы гарантировать назначение Pod здесь.
Ответ №2:
Как Иван, предложил выше, разверните три развертывания, по одному для x, y и z.
Вы можете использовать один и тот же образ для трех развертываний, просто передавая разные переменные среды / значения для каждого развертывания для развертывания определенного компонента. Возможно, вам придется встроить некоторую логику в сценарий запуска контейнера, чтобы извлечь значение из переменной среды и запустить нужный компонент
Ответ №3:
Насколько я понимаю, в ваших требованиях указано, что у вас есть база кода приложения трех процессов внутри одного решения. Не сомневайтесь, что три упомянутых вами компонента являются независимыми компонентами процесса или просто интерфейсным интерфейсом, сервисом, DAL и т.д. Или даже уровнями, Например, типичное приложение с трехуровневой архитектурой с веб-интерфейсом, API и серверным уровнем, но давайте для простоты назовем три микросервиса или службы…
В любом случае, рекомендуется использовать лучшие практики docker, шаблон микросервисов, размещенных в kubernetes :
-
контейнер для небольшого приложения для каждого процесса (не монолитный)
-
хотя в каждом модуле может быть несколько контейнеров, рекомендуется оставить по одному на модуль — возможно, внутри модуля может быть три контейнера
- У вас может быть три модуля, по одному для каждого вашего приложения-компонента, при условии, что эти приложения могут быть преобразованы в три отдельных независимых процесса.
- Наличие одного файла yaml для каждой службы и включение всех связанных объектов внутри, разделенных — в отдельной строке
- Три контейнера внутри одного модуля или три модуля для каждой службы будут легко доступны друг другу
Надеюсь, это поможет.