Серверная часть Cloud Foundry и общедоступные приложения

В большинстве решений некоторые приложения должны быть общедоступными, а некоторые должны быть доступны только для внутреннего использования.

Есть ли проверенный шаблон конфигурации такого решения?

Простым способом сделать это может быть создание двух пространств CF (в одной и той же организации CF):

  • the internal space
    • apps in this space are binded to the internal domain (e.g: *.my-internal-cf.cloud) that points the internal load-balancer
    • internal domain является основным общим доменом
    • internal load-balancer недоступен из Интернета, может быть доступен только для приложений из Cloud Foundry
    • internal space имеет доступ к службам поддержки (см. группы безопасности)
  • the public space:
    • apps in this space are binded to the public domain (e.g: *.my-pub-cf.cloud) that points the public load-balancer
    • public load-balancer доступен из Интернета и пропускает только трафик на public domains
    • public space имеет ограниченный доступ к службам поддержки или даже имеет доступ только к приложениям из internal space (см. группы безопасности)

Надежна ли эта конфигурация?

Можно ли это сделать проще?


person kinjelom    schedule 19.07.2018    source источник


Ответы (1)


Использование организаций и пространств здесь не имеет отношения к общедоступному/частному приложению. Организации и пространства предназначены для внутренней организации ваших приложений и ограничения доступа к ним через cf cli. Вы можете использовать любую структуру, которая имеет смысл для вашей команды и компании.

Для того, чтобы сделать приложение общедоступным/приватным, все зависит от использования маршрутов. Если вам нужен публичный доступ к приложению, вы привязываете общедоступный маршрут к приложению (т. е. не внутренний маршрут). Если вы не хотите, чтобы приложение было общедоступным, либо привяжите внутренний маршрут или вообще не связывать маршрут. Если вы привязываете внутренний маршрут, вы можете использовать DNS-сервер платформы. открытие на основе или принесите свое собственное, например Eureka или Consul. Если вы не привязываете маршрут, вы будете общаться через службу, например брокер сообщений.

Вы даже можете контролировать трафик между двумя приложениями в сети контейнер-контейнер с помощью политики. Это позволяет разрешать или ограничивать трафик в зависимости от типа и порта.

person Daniel Mikusa    schedule 19.07.2018
comment
Спасибо @Daniel. Использование организаций и пространств здесь не имеет отношения к общедоступному/частному приложению - обычно да, но в описанной конфигурации приложения из внутренних пространств имеют только внутренние домены/маршруты, поэтому становятся доступными только для внутреннего использования. Я знаю, что это не идеальное решение, но стабильное. Внутренний маршрут — это функция, которая мне нужна, но в настоящее время она является экспериментальной. Могу ли я использовать его в производстве? Когда она станет стабильной? - person kinjelom; 19.07.2018
comment
Если вы не используете функцию внутреннего маршрута, это не совсем внутренний маршрут. Вы можете добавить домен, такой как my-internal-cf.cloud, ограничить, где он может быть разрешен, и даже ограничить доступ к домену в ваших пространствах, но в конечном итоге приложение с маршрутом в этом домене все равно будет публиковать маршрут в Gorouter. Все, что нужно, это чтобы кто-то знал внутренний маршрут, curl и поддельный заголовок Host, чтобы заставить Гораутера отправить запрос на один из ваших квази-внутренних маршрутов. - person Daniel Mikusa; 20.07.2018
comment
Использование функции внутреннего маршрута было бы лучше, потому что Gorouter никогда не будет маршрутизировать только к внутреннему домену. Единственный способ использовать этот домен — из контейнера в контейнерную сеть. Если безопасность и изоляция являются первоочередными задачами, использование функции внутреннего маршрута является правильным решением. Начиная с PCF 2.2, внутренние маршруты включены по умолчанию, так что это должно быть довольно стабильно. - person Daniel Mikusa; 20.07.2018