Развернутая небольшая служба приложений tanzu (tas) в Azure без доменов. Могу ли я получить доступ к ccapi и диспетчеру приложений с IP-адресом?
Можно ли развернуть Bosh и службу приложений tanzu small footprint (tas) в Azure без использования доменов. Все виртуальные машины работают. Могу ли я получить доступ к ccapi и диспетчеру приложений с IP-адресом вместо api.SYSTEMDOMAIN?
2 ответа
Краткий ответ: нет. Вы действительно хотите, чтобы DNS был настроен правильно.
Вот длинный ответ с более тонкими нюансами.
Все запросы в ваш фонд проходят через Gorouter. Gorouter принимает входящий запрос, просматривает заголовок и использует его, чтобы определить, куда отправить запрос. Это происходит так же для системных служб, как CAPI и UAA, и для приложений, которые вы развертываете на основе.
DNS является требованием из-за заголовка. Браузер, пытающийся получить доступ к CAPI или приложению на вашем фундаменте, установит заголовок на основе записи DNS, которую вы вводите в адресную строку браузера. Cf CLI будет делать то же самое.
Есть несколько способов обойти это:
Если вы строго используете такого клиента, как
curl
где вы можете установитьHost
заголовок в произвольные значения. Таким образом, вы можете установить заголовок хоста и одновременно подключиться к IP-адресу вашего фонда. Однако это не очень элегантный способ использования CF.Вы можете вручную установить записи в вашем /etc/hosts` (или аналогичном в Windows). По сути, это способ переопределить разрешение DNS и предоставить свой собственный IP-адрес.
Вам нужно будет сделать это для
uaa.system_domain
,login.system_domain
,api.system_domain
и любые имена хостов, которые вы хотите использовать для приложений, развернутых на вашем фундаменте, напримерmy-super-cool-app.apps_domain
. Все они должны указывать на IP-адрес балансировщика нагрузки, который находится перед вашим пулом Gorouters.Если вы добавите достаточно записей, вы можете заставить работать cf CLI. Я делал это время от времени, чтобы обойти уровень балансировщика нагрузки в целях устранения неполадок.
Это не сработает в системах, где вы не можете редактировать, например, если клиенты или внешние пользователи программного обеспечения, работающего на вашем фундаменте, или если вы пытаетесь развернуть приложения на вашем фундаменте, которые общаются друг с другом, используя маршруты на CF (поскольку ты не можешь редактировать
/etc/hosts
в контейнере). Как если бы у васapp-a.apps_domain
иapp-b.apps_domain
иapp-a
нужно поговорить сapp-b
. Это не сработает, потому что у вас нет разрешения DNS дляapps_domain
.Вы, вероятно, сможете заставить взаимодействие между приложениями работать, если у вас есть возможность использовать сеть контейнер-контейнер и домен. Разрешение для этого домена обеспечивается Bosh DNS. Вы должны помнить об этой разнице при развертывании ваших приложений и отображении маршрутов на
apps.internal
домен, а также настройку сетевой политики, разрешающей трафик между ними.
В любом случае, могут быть и другие икоты. Это просто не в моей голове. Как видите, будет намного лучше, если вы сможете настроить DNS.
Самый простой способ создать портативное решение - это такая служба, как xip.io, которая будет работать «из коробки». Я настроил и запустил много PoC таким образом, когда DNS с подстановочными знаками был чем-то, о чем корпоративные ИТ-отделы еще не обращали внимания.
Это работает так (отрывок с их сайта):
Что такое xip.io?xip.io - это волшебное доменное имя, которое обеспечивает DNS с подстановочными знаками для любого IP-адреса. Скажем, ваш IP-адрес в локальной сети - 10.0.0.1. Используя xip.io,
10.0.0.1.xip.io resolves to 10.0.0.1
www.10.0.0.1.xip.io resolves to 10.0.0.1
mysite.10.0.0.1.xip.io разрешается до 10.0.0.1foo.bar.10.0.0.1.xip.io разрешается до 10.0.0.1
...и так далее. Вы можете использовать эти домены для доступа к виртуальным хостам на вашем веб-сервере разработки с устройств в вашей локальной сети, таких как iPad, iPhone и другие компьютеры. Конфигурация не требуется!