Лучшее, что вы можете сделать, - это развернуть эти 2 модуля в одном проекте, чтобы вы могли поддерживать внутреннюю коммуникацию:
$ oc new-project test
$ oc new-app registry:5000/frontend-image
$ oc new-app registry:5000/backend-image
Это автоматически создаст конфигурацию развертывания и создаст ваш модуль + контейнер + контроллер репликации (для обеспечения высокой доступности он проверит, работает ли модуль по-прежнему) + службу.
Услуга - важный аспект. Фактически это балансировщик нагрузки, который распределяет трафик между несколькими модулями. oc new-app
проверит, какие порты доступны, и создаст службу над портами. Так, например, вы можете увеличить свой интерфейсный модуль до 3, тогда сервис будет распределять посетителя 1 на модуль 1, а другого посетителя на модуль 2 и т. Д. Сервис стабилен, поэтому его IP-адрес не изменится. IP-адрес службы начинается с 172.30.xx.xx. Таким образом, трафик, отправленный на этот IP-адрес, будет перенаправлен на ваши модули. Так что для экономии внутренней сети лучше всего подключать сервисы. Вы можете подключиться к имени службы, которое будет переведено на IP-адрес службы. (Если есть какой-то странный случай, когда вам нужно воссоздать свою службу, вы можете создать ее с тем же именем, чтобы вам не пришлось изменять свои appconfigs).
Например. У меня есть приложение, связанное с базой данных mysql. В конфиге моего приложения я указываю на соединение с host: mysql. Это имя службы моего MySQL.
connection: {
host: 'mysql',
user: 'xx-user',
password: 'xx',
database: 'db',
charset: 'utf8'
Вы можете проверить свою услугу:
$ oc get svc
или в веб-консоли
![введите описание изображения здесь](https://i.stack.imgur.com/DCmKu.png)
Итак, для вашего приложения вы должны указать имя службы вашего бэкэнда. (Сначала мне нужно запустить базу данных, потому что в противном случае развертывание моего приложения не удастся, потому что оно не найдет базу данных). Итак, вам сначала нужно развернуть свой бэкэнд + создать службу и указать это имя службы в конфигурации вашего внешнего интерфейса.
Иногда у вас не получается сохранить все внутри. Затем вам нужно создать маршруты на своих сервисах. Это откроет доступ к вашему сервису извне, и вы сможете общаться по маршрутам. Затем вы должны указать эти маршруты в своих конфигах. Маршруты будут преобразованы маршрутизатором OpenShift, и маршрутизатор направит их в нужную службу. Поделитесь своим мнением, если что-то неясно.
ИЗМЕНИТЬ 1:
nslookup mysql
Server: 172.30.0.1
Address: 172.30.0.1#53
Name: mysql.test.svc.cluster.local
Address: 172.30.195.xx
РЕДАКТИРОВАТЬ 2: запустите mysql в OpenShift (используйте временный шаблон: user = test, password = test, database = test. Войдите в свой контейнер и попробуйте аутентифицироваться следующим образом: вы определите своего пользователя , пароль и хост (host = servicename). Это также будет работать с IP-адресом вашей службы: 172.30.xxx)
sh-4.2$ mysql -utest -ptest -hmysql
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 48880
Server version: 5.6.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
29.07.2016