Неправильный заголовок хоста и бэкэнд по умолчанию 404 с входным контроллером Kubernetes - PullRequest
0 голосов
/ 06 ноября 2019

Доступ к моему сайту nodejs / реагирует с использованием URL-адреса «Недопустимый заголовок узла». При доступе к нему через общедоступный IP-адрес отображается «бэкэнд по умолчанию - 404».

Я использую контроллер Kubernetes nginx с облаком Azure и балансировщиком нагрузки.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myrule
  namespace: mynamespace
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  tls:
  - hosts:
    - mysite.uknorth.cloudapp.azure.com
    secretName: tls-secret
  rules:
  - host: mysite.uknorth.cloudapp.azure.com
    http:
      paths:
      - backend:
          serviceName: service-ui
          servicePort: 8080
        path: /
      - backend:
          serviceName: service-api
          servicePort: 8999
        path: /api

Любое руководство приветствуется.

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Итак, давайте предположим, что с частью SSL все в порядке ( ссылка ), поскольку вы можете подключиться к входному контроллеру nginx.

Ваша аннотация перезаписи не нужна для того, что вам нужно. Взгляните на эти правила:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myrule
  namespace: mynamespace
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
spec:
  tls:
  - hosts:
    - mysite.uknorth.cloudapp.azure.com
    secretName: tls-secret
  rules:
  - host: mysite.uknorth.cloudapp.azure.com
    http:
      paths:
      - backend:
          serviceName: service-ui
          servicePort: 8080
        path: /
      - backend:
          serviceName: service-api
          servicePort: 8999
        path: /api

Все, что вы отправляете на /api/.*, будет перенаправлено на service-api. И все, что вы отправите на /, будет отправлено на service-ui.

0 голосов
/ 08 ноября 2019

Спасибо за ваш отзыв. Оказывается, проблема не была с правилом входа выше. Служебный пользовательский интерфейс выполнял неверные параметры команды, таким образом, не подтверждая запрос. Я упустил тот факт, что service-api правильно реагировал.

Короче говоря, проверьте, правильно ли настроены конечные точки и запущенные службы - для меня это больше урок, чем кому-либо еще. Я получил ответ, свернув службу локально, но это не означало, что она может обрабатывать запросы https через вход, поскольку служба настроена неправильно.

Кроме того, еще один урок для меня, спросите разработчиков, правильное ли изображениеиспользуется для сборки. И спросите их снова, говорят ли они да.

...