Каков наилучший способ установки переменных среды при создании модуля? - PullRequest
0 голосов
/ 07 сентября 2018

Я использую Openshift Container Platform 3.9, где я развертываю три контейнера; контейнер базы данных postgres, контейнер брокера сообщений qpid и сервер, который должен подключаться к обоим.

Мне нужно установить переменные среды при создании модуля, чтобы все три контейнера могли соединиться. Например, мне нужно установить переменные DB_HOST и BROKER_HOST с соответствующими адресами модуля. Я собирался использовать пресеты pod для этого, но согласно документации, As of OpenShift Container Platform 3.7, pod presets are no longer supported.

Каков наилучший метод для установки этих типов адресов при создании модуля?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

После более тщательного изучения документации я обнаружил, что на самом деле есть несколько способов сделать это.

Во-первых, при создании приложений из шаблона, источника или изображения вы можете использовать -e| --env аргумент для передачи переменных среды в контейнер приложения во время выполнения:

$ oc new-app openshift/postgresql-92-centos7 \
-e POSTGRESQL_USER=user \
-e POSTGRESQL_DATABASE=db \
-e POSTGRESQL_PASSWORD=password

Переменные также можно прочитать из файла, используя аргумент --env-file:

$ cat postgresql.env
POSTGRESQL_USER=user
POSTGRESQL_DATABASE=db
POSTGRESQL_PASSWORD=password
$ oc new-app openshift/postgresql-92-centos7 --env-file=postgresql.env

Это полезно, но более удобный способ установки данных конфигурации при создании модуля - это ConfigMap.Согласно документации,

Объект ConfigMap предоставляет механизмы для внедрения контейнеров с данными конфигурации, сохраняя независимость контейнеров от OpenShift Enterprise.ConfigMap может использоваться для хранения подробной информации, например отдельных свойств, или общей информации, например, целых файлов конфигурации или больших двоичных объектов JSON.

Руководство разработчика Openshift 3.9

0 голосов
/ 07 сентября 2018

быстрый ответ: вы не

Если вы хотите использовать какой-либо сервис, определите для него объект Сервис , чтобы вы получили фиксированное имя DNS, которое вы можете использовать для ссылки на этот сервис. И затем вы заранее знаете значения DB_HOST или BROKER_HOST и устанавливаете их в Pod как любые другие

...