Рейтинг:0

istio gateway Не открываются внутренние ссылки, как это исправить?

флаг ke

Я развернул приложение в kubernetes. Это работает, если мы предоставляем службу балансировки нагрузки по умолчанию в azure kubernetes. Но после настройки виртуального сервиса, связанного с входным шлюзом istio, он запускает только домашнюю страницу, ни одна из ссылок не работает, как /admin /login.

Я уже добавил записи для /admin и /login в виртуальную службу, но эти страницы не открываются.

Киали запущен с использованием

приборная панель istioctl киали

Когда я проверяю журналы киали.

[2021-07-18T08:19:51.304Z] "GET /admin/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "bc1ce347-4151-947b-b3d5-4c08003889a2" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.1.1 - -

[2021-07-18T08:19:53.400Z] "GET /login/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "78f9d59e-6126-94f6-99e3-cbffe98e274f" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.1.1 - -

[2021-07-18T08:19:56.286Z] "GET /login HTTP/1.1" 301 - via_upstream - "-" 0 0 4 4 "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit /537.36 (KHTML, например Gecko) Chrome/91.0.4472.164 Safari/537.36" "be2ff6b8-751d-9150-9d6a-936a436f7fef" "20.85.0.248" "10.244.1.50:3000" исходящий |8080||node-service.default .svc.cluster.local 10.244.1.9:59678 10.244.1.9:8080 10.244.1.1:4441 - -

[2021-07-18T08:19:56.525Z] "GET /login/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/91.0.4472.164 Safari/537.36" "f821db0b-cc9d-9b8c-9769-71ac7636a87e" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.4 -1:1: -

[2021-07-18T08:20:00.198Z] "GET / HTTP/1.1" 200 - via_upstream - "-" 0 2804 4 4 "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/ 537.36 (KHTML, например Gecko) Chrome/91.0.4472.164 Safari/537.36" "43c37e75-f0ce-9474-bc4d-ea4459772f6d" "20.85.0.248" "10.244.1.50:3000" исходящий |8080||node-service.default. svc.cluster.local 10.244.1.9:59678 10.244.1.9:8080 10.244.1.1:4441 - -

[2021-07-18T08:20:00.457Z] "GET /static/todo/logo.png HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0 ; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "a26d3710-3868-96b6-9d6d-7f6ee05dc131" "20.85.0.248" "-" - - 10.244.1.1.9:8080 .1.1:4441 - -

[2021-07-18T08:20:34.337Z] "GET /login/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "e8e73933-f95e-90a7-bdf4-ad39352982c5" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.1.1 - -

[2021-07-18T08:20:37.506Z] "GET /login/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "bee90116-2d78-99dd-a4b7-fede0641fed8" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.1.1 -1:44444 -

[2021-07-18T08:20:40.191Z] "GET /login/ HTTP/1.1" 404 NR route_not_found - "-" 0 0 0 - "10.244.1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/91.0.4472.164 Safari/537.36" "f9df634e-743f-9699-a85d-40926db41ca4" "20.85.0.248" "-" - - 10.244.1.9:8080 10.244.1.1 - -

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

Пример докера приложения соединять.

Используемые файлы yaml kubernetes:

Развертывание.yaml

апиВерсия: v1
вид: сервис
метаданные:
  имя: узел-сервис
  этикетки:
    приложение: nodeapp
    сервис: узел-сервис
спецификация:
  селектор:
    приложение: nodeapp
  порты:
    - имя: http
      порт: 8080
      целевой порт: 3000 #80

---
апиВерсия: v1
тип: ServiceAccount
метаданные:
  имя: nodeapp-детали
  этикетки:
    учетная запись: nodeapp-детали
---
apiVersion: приложения/v1
вид: развертывание
метаданные:
  имя: nodeapp-развертывание
  этикетки:
    приложение: nodeapp
    версия: v1
спецификация:
  реплики: 1
  селектор:
    метки соответствия:
      приложение: nodeapp
      версия: v1
  шаблон:
    метаданные:
      этикетки:
        приложение: nodeapp
        версия: v1
    спецификация:
      serviceAccountName: nodeapp-детали
      контейнеры:
        - имя: nginx
          изображение: uday1kiran/todoapp:1.0 #nginx
          imagePullPolicy: Ифноптресент
          порты:
            - контейнерПорт: 3000 #80
              имя: nodeapp-порт
          #контекст безопасности:
          #runAsUser: 1000

виртуальный сервис.yaml

версия API: networking.istio.io/v1alpha3
вид: виртуалсервис
метаданные:
  имя: нодсервер
спецификация:
  хосты:
    - "*"
  шлюзы:
    - узел-шлюз
  http:
    - соответствовать:
        - ури:
            точный: /
        - ури:
            точно: /admin
        - ури:
            точно: /логин
      маршрут:
        - пункт назначения:
            хост: узел-сервис
            порт:
              номер: 8080

шлюз.yaml

версия API: networking.istio.io/v1alpha3
вид: Шлюз
метаданные:
  имя: узел-шлюз
спецификация:
  селектор:
    istio: ingressgateway # использовать контроллер istio по умолчанию
  серверы:
  - порт:
      номер: 80
      имя: http
      протокол: HTTP
    хосты:
    - "*"

Файлы yaml находятся в этом хранилище

Рейтинг:0
флаг id

Вы получаете 404 ошибки, потому что вы использовали точный:

http:
    - соответствовать:
        - ури:
            точный: /
        - ури:
            точно: /admin
        - ури:
            точно: /логин

Однако вы пытаетесь достичь других конечных точек, например.

"ПОЛУЧИТЬ /admin/HTTP/1.1"

"ПОЛУЧИТЬ /логин/HTTP/1.1"

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

moonkotte avatar
флаг in
Привет @uday. Это [ответ на ваш вопрос](https://serverfault.com/help/someone-answers)?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.