Я попытался развернуть образец приложения nginx, и он работает.
Итак, я заменил то же самое другим nodejs, так как он содержит несколько подстраниц. Итак, я могу проверить маршрутизацию.
Здесь с типом службы LoadBalancer по умолчанию страница загружается, как показано ниже.
Но с шлюзом istio он просто показывает пустую страницу.
Пожалуйста, предложите, как это исправить?
Мой шлюз:
версия API: networking.istio.io/v1alpha3
вид: Шлюз
метаданные:
имя: SampleServer-Gateway
спецификация:
селектор:
istio: ingressgateway # использовать контроллер istio по умолчанию
серверы:
- порт:
номер: 80
имя: http
протокол: HTTP
хосты:
- "*"
Мой виртуальный сервис:
версия API: networking.istio.io/v1alpha3
вид: виртуалсервис
метаданные:
имя: nginxserver
спецификация:
хосты:
- "*"
шлюзы:
- SampleServer-шлюз
http:
- соответствовать:
- ури:
точный: /
маршрут:
- пункт назначения:
хост: nginx-сервис
порт:
номер: 8080
Мой файл развертывания и обслуживания:
апиВерсия: v1
вид: сервис
метаданные:
имя: nginx-сервис
этикетки:
приложение: nginx
сервис: nginx
спецификация:
селектор:
приложение: nginx
порты:
- имя: http
порт: 8080
целевой порт: 3000 #80
---
апиВерсия: v1
тип: ServiceAccount
метаданные:
имя: nginx-детали
этикетки:
аккаунт: nginx
---
apiVersion: приложения/v1
вид: развертывание
метаданные:
имя: nginx-развертывание
этикетки:
приложение: nginx
версия: v1
спецификация:
реплики: 1
селектор:
метки соответствия:
приложение: nginx
версия: v1
шаблон:
метаданные:
этикетки:
приложение: nginx
версия: v1
спецификация:
serviceAccountName: nginx-детали
контейнеры:
- имя: nginx
изображение: uday1kiran/начало работы:1.0 #nginx
imagePullPolicy: Ифноптресент
порты:
- контейнерПорт: 3000 #80
имя: nginx-порт
#контекст безопасности:
#runAsUser: 1000
Для шлюза я установил службу kubernetes по умолчанию как ClusterIP.
Но, поскольку он не отображается, в целях тестирования я изменил его на LoadBalancer, чтобы проверить любую проблему с приложением, но через обычный сервис LoadBalancer он загружается, но не через входной шлюз istio.
Пример приложения является общедоступным изображением, вы можете протестировать его напрямую.
источник код приложения находится в папке приложения репо