реестр домена с помощью Istio ServiceEntry - PullRequest
0 голосов
/ 27 августа 2018

Сейчас я тестирую сценарий запуска приложений на Istio.
У меня нет доступа к устаревшим кодам, поэтому я не могу изменить URL запроса.

Для этого я сделал несколько простых приложений.

Я не уверен, что этот сценарий доступен на Istio.

У меня есть две заявки (заказ и заказчик) В приложении заказа есть приложение вызова клиента с URL-адресом "http://customer -app: 8080 / customer ".

Теперь я хочу запустить два приложения на K8S с Istio.
И я не хочу менять свой код, особенно вызывая URL.
(Я знаю, что могу позвонить в каждую службу с именем службы.
но я хочу сделать имя службы поддержки клиентов с помощью «customer-service», а не «customer-app»)

Я обнаружил, что существует VirtualService, который может зарегистрировать MESH_INTERNAL.
Я делаю файл yaml таким образом.

apiVersion: networking.istio.io/v1alpha3   
kind: ServiceEntry   
metadata:  
  name: customer-service-entry  
spec:  
  hosts:  
  - http://customer-app:8080  
  location: MESH_INTERNAL  
  ports:  
  - number: 8080  
    name: http  
    protocol: http  
  endpoints:  
  - address: customer-service  
    ports:  
      http: 8080  

Возможен ли сценарий с использованием виртуального домена?

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны быть в состоянии сделать это, используя VirtualService:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: customer-app
spec:
  hosts:
  - customer-app
  http:
  - match:
    - port: 8080
    route:
    - destination:
        host: customer-service
        port:
          number: 9080

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

apiVersion: v1
kind: Service
metadata:
  name: customer-app
spec:
  ports:
  - port: 8080
    name: http
...