Может ли Istio сопоставить несуществующий хост с данным сервисом на K8s - PullRequest
0 голосов
/ 07 июня 2018

2 вопроса для вас, ребята.

У меня есть модуль A, пытающийся запросить URL с именем foo , выполняющий GET для http://foo.Но служба foo не существует в моем кластере K8, вместо этого у меня есть служба с именем fooX , которая может выполнить эту работу.Можно ли создать конфигурацию Istio для маршрутизации моего вызова foo в службу fooX?

В более общем смысле у нас есть набор служб, вызывающих другие службы и получающих URL-адреса служб через переменные среды, но чем больше службау нас больше переменная среды, она не масштабируется.Я надеялся, что сервисная сетка поможет в этом отношении, но я не уверен.

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Как уже упоминалось в другом ответе, это возможно с использованием ExternalService (переименовано ServiceEntry в 0.8.1).Однако это связано с предупреждением о том, что имя, выбранное для псевдонима в ServiceEntry, будет разрешаться DNS для HTTP.В противном случае поиск DNS не удастся, и соединение никогда не установит соединение с прокси-сервером для маршрутизации на основе ServiceEntry.

0 голосов
/ 08 июня 2018

Вы можете использовать K8S Службы ExternalName для этого:

Служба ExternalName - это особый случай службы, в которой нет селекторов.Он не определяет какие-либо порты или конечные точки.Скорее, он служит способом возврата псевдонима внешней службе, находящейся вне кластера.

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

kind: Service
apiVersion: v1
metadata:
  name: foo
  namespace: prod
spec:
  type: ExternalName
  externalName: fooX.prod.svc.CLUSTER

Поэтому, когда ваши приложения будут отправлять запросы на http://foo.prod.svc.CLUSTER, запросы будут поступать http://fooX.prod.svc.CLUSTER.

...