Приложения должны быть сопоставлены с маршрутами в одном и том же пространстве

Ниже ошибка на cf push:

org.cloudfoundry.client.v2.ClientV2Exception: CF-InvalidRelation(1002): The app cannot be mapped to this route because the route is not in this space. Apps must be mapped to routes in the same space.

Ниже приведен файл манифеста:

applications:
- name: xyz-api
  instances: 1
  memory: 1G
  buildpack: java_buildpack_offline
  path: target/xyz-api-0.1-SNAPSHOT.jar

cf login x.y.z.w.org.cloud ....

cf push xyz-api -p target/xyz-api-0.1-SNAPSHOT.jar

У нас есть две конечные точки API:

a.b.c.d.org.cloud

x.y.z.w.org.cloud

По результатам расследования мы поняли, что название маршрута уже существует на a.b.c.d.org.cloud потому что наш исходный код жестко кодирует то же имя маршрута для любой конечной точки API.

Не может ли одно и то же имя маршрута использоваться для нескольких конечных точек API? Зачем?

3 ответа

По умолчанию cf push назначает маршрут каждому приложению

Я понятия не имею, что функциональность опускает routeможет быть по умолчанию / назначается приложению в пространстве, которое может быть уже занято другим приложением в пространстве.

Cloud Foundry Gorouter направляет запросы к приложениям, связывая приложение с адресом, известным как маршрут. Мы называем эту ассоциацию картированием. Используйте команду cf CLI cf map-route, чтобы связать приложение и маршрут.

Вы можете запустить cf routes команда, чтобы увидеть, какие маршруты используются,

https://cli.cloudfoundry.org/en-US/cf/routes.html

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

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html

---
  ...
  no-route: true

случайный маршрут,

---
  ...
  random-route: true

определенный маршрут,

---
  ...
  routes:
  - route: example.com
  - route: www.example.com/foo
  - route: tcp-example.com:1234

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html

Вы можете проверить документацию маршрутов для более подробного объяснения того, что такое маршрут.

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html

Если вам нужна последняя версия артефакта, для этого есть новая функция. См. последний абзац в https://help.sonatype.com/repomanager3/integrations/rest-and-integration-api/search-api . Однако они забыли добавить к пути пустой «&maven.classifier». Если вы этого не сделаете, он получит последнюю версию вашего артефакта — javadoc.jar из Nexus, а это не то, что вам нужно. По крайней мере, так было со мной.

Для cf8 есть способ включить совместное использование маршрутов между пространствами.

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#share-route

Для меня это не работает, потому что у меня нет разрешений, но я открыл здесь вопрос

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

Другие вопросы по тегам