Только '/' работает с контроллером входящего трафика NGINX и ALB в AWS EKS.

Я создал кластер EKS и развернул контроллер входящего трафика NGINX с балансировщиком нагрузки приложений. Я развернул образец приложения и привязал его к своему доменному имени. Вот входной файл -

kind: Ingress
metadata:
  name: "2048-ingress"
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
  labels:
    app: 2048-ingress
spec:
  rules:
    - host: test.abc.xyz
    - http:
        paths:
          - path: /game
            backend:
              serviceName: "service-2048"
              servicePort: 80

Когда я открываю test.abc.xyz/game в своем браузере, он возвращает 404, но test.abc.xyz работает. Я что-то упустил? Я хочу, чтобы test.abc.xyz/game работал, а test.abc.xyz возвращал 404.

Обновление - я следую этому руководству по развертыванию приложения - https://aws.amazon.com/blogs/opensource/kubernetes-ingress-aws-alb-ingress-controller/ Я хочу, чтобы это приложение перенаправлялось на / game, а не на /


person Anshul Tripathi    schedule 03.09.2019    source источник
comment
Можете ли вы поделиться выводом kubectl, описывающим вход 2048?   -  person dassum    schedule 03.09.2019
comment
поделитесь правилами alb, которые вы определили. Также проверьте, отвечает ли ваш сервис на / game, у вас может быть что-то после этого.   -  person dassum    schedule 03.09.2019
comment
Describe ingress возвращает ошибку. Ошибка сервера (NotFound): серверу не удалось найти запрошенный ресурс. Я могу только получить или отредактировать, что странно. Вот правило ALB. ЕСЛИ Путь / игра ТОГДА вперед к ЦЕЛЕВОЙ ГРУППЕ   -  person Anshul Tripathi    schedule 03.09.2019
comment
Это руководство по aws может быть полезным.   -  person Mark    schedule 04.09.2019
comment
Я пробовал. Базовая конфигурация работает, но не подходит для того, чего я пытаюсь достичь.   -  person Anshul Tripathi    schedule 04.09.2019
comment
"Describe ingress returns an error. Error from server (NotFound): the server could not find the requested resource. I can only do a get or an edit which is strange. Here is the ALB rule. IF Path is /game THEN forward to the TARGET GROUP" Звучит не очень хорошо, я бы попытался удалить и воссоздать вход, чтобы увидеть, сохраняется ли проблема или успешно, и можно ли получить дополнительную информацию, если она все еще не удалась. В зависимости от того, как это пойдет, я бы проверил работоспособность службы service-2048; в частности, что он исправен и настроен на прослушивание порта 80.   -  person cewood    schedule 05.09.2019
comment
Описанный вход - это известная проблема - github.com/kubernetes/kubectl/issues/675. Относительно того, слушает ли служба - да, слушает. Я могу сделать переадресацию портов, и это работает. Только маппинг не работает.   -  person Anshul Tripathi    schedule 05.09.2019


Ответы (1)


Вы должны определить подстановочный знак в разделе пути, как показано ниже:

spec:
  rules:
    - host: test.abc.xyz
    - http:
        paths:
          - path: /*
            backend:
              serviceName: "service-2048"
              servicePort: 80
   - path: /game/*
            backend:
              serviceName: "service-2048"
              servicePort: 80

К сожалению, это плохо написано в документации.

person Rodrigo Andrade    schedule 15.06.2020