шлюз istio, не загружает приложение узла

Я попытался развернуть образец приложения nginx, и оно работает. Итак, я заменил его другим nodejs, поскольку он содержит несколько подстраниц. Итак, я могу проверить маршрутизацию.

Здесь с типом службы по умолчанию LoadBalancer страница загружается, как показано ниже.

LB

Но со шлюзом istio отображается просто пустая страница.

gateway

Предложите, пожалуйста, как это исправить?

Мой шлюз:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: sampleserver-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"

Моя виртуальная служба:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nginxserver
spec:
  hosts:
  - "*"
  gateways:
  - sampleserver-gateway
  http:
  - match:
    - uri:
        exact: /
    route:
    - destination:
        host: nginx-service
        port:
          number: 8080

Мой файл развертывания и службы:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
    service: nginx
spec:
  selector:
    app: nginx
  ports:
    - name: http 
      port: 8080
      targetPort: 3000 #80

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: nginx-details
  labels:
    account: nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
      version: v1
  template:
    metadata:
      labels:
        app: nginx
        version: v1
    spec:
      serviceAccountName: nginx-details
      containers:
        - name: nginx
          image: uday1kiran/getting-started:1.0 #nginx
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000 #80
              name: nginx-port
          #securityContext:
              #runAsUser: 1000

Для шлюза я установил службу Kubernetes по умолчанию как ClusterIP. {{1} } Но, поскольку он не отображается, в целях тестирования я изменил его на LoadBalancer, чтобы проверить любую проблему с приложением, но оно загружается через обычную службу LoadBalancer, но не через входной шлюз istio.

Образец приложения является общедоступным изображением, вы можете протестировать его напрямую

исходный код приложения находится в папке приложения репозитория

1
задан 16 July 2021 в 11:24
1 ответ

Я воспроизвел вашу проблему, и все работает нормально после изменения соответствия http с "точного" на "префикс" в виртуальном сервисе, вот доказательство: enter image description here

enter image description here

enter image description here

0
ответ дан 28 July 2021 в 13:22

Теги

Похожие вопросы