Запустить 3 компонента приложения в 3 разныхмодулях

#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 :

  1. контейнер для небольшого приложения для каждого процесса (не монолитный)

  2. хотя в каждом модуле может быть несколько контейнеров, рекомендуется оставить по одному на модуль — возможно, внутри модуля может быть три контейнера

  3. У вас может быть три модуля, по одному для каждого вашего приложения-компонента, при условии, что эти приложения могут быть преобразованы в три отдельных независимых процесса.
  4. Наличие одного файла yaml для каждой службы и включение всех связанных объектов внутри, разделенных — в отдельной строке
  5. Три контейнера внутри одного модуля или три модуля для каждой службы будут легко доступны друг другу

Надеюсь, это поможет.