nginx ingress всегда перенаправляет на https даже с установленными configmap и аннотациями

У меня есть вход, который настроен так:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: connect-app
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - host: it.tufts.edu
    http:
      paths:
      - path: "/"
        backend:
          serviceName: connect-it
          servicePort: 80

а у контроллера nginx есть конфигурационная карта, которая выглядит так:

apiVersion: v1
items:
- apiVersion: v1
  data:
    ssl-redirect: "false"
  kind: ConfigMap
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"v1","data":null,"kind":"ConfigMap","metadata":{"annotations":{},"name":"nginx-config","namespace":"nginx-ingress"}}
    creationTimestamp: 2018-11-13T20:56:49Z
    name: nginx-config
    namespace: nginx-ingress
    resourceVersion: "3633400"
    selfLink: /api/v1/namespaces/nginx-ingress/configmaps/nginx-config
    uid: a3ec70bc-e786-11e8-be24-005056a401f6
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

Согласно документации, это должно отключить перенаправление с http на https, но это не работает, что я делаю не так?

Спасибо


person sgarre02    schedule 29.11.2018    source источник
comment
Можете ли вы опубликовать nginx.conf изнутри вашего pod?   -  person Crou    schedule 29.11.2018
comment
Привет, @Crou. Извините, вы имеете в виду модуль, являющийся частью службы, или модуль nginx-ingress? Модуль, который является частью службы, на которой я пытаюсь отключить TLS, является веб-сервером apache: <VirtualHost *:80> DocumentRoot "/directory" ServerName it.tufts.edu DirectoryIndex index.html .index.html index.shtml index.pl index.cgi index.htm .index.htm <Directory "//directoryl"> Options Indexes FollowSymLinks AllowOverride Indexes Options=Indexes FileInfo </Directory> </VirtualHost> ~   -  person sgarre02    schedule 29.11.2018
comment
Попробуйте добавить аннотацию kubernetes.io/ingress.class: "nginx" в yaml nginx-ingress   -  person Crou    schedule 29.11.2018
comment
Да, это не сработало. когда у меня 443 в yaml nginx-ingress, он работает нормально, как только я его вытаскиваю, он ломается. Должно быть другое место, которое он получает, либо плохо задокументировано, либо я просто не замечаю.   -  person sgarre02    schedule 29.11.2018


Ответы (1)


Я считаю, что это либо:

  • Проблема с вашим контроллером входящего трафика nginx, который не обновляет конфигурации, которые вы можете проверить с помощью:

    $ kubectl cp <nginx-ingress-controller-pod>:nginx.conf .
    $ cat nginx.conf
    
  • Проблема с перенаправлением вашей конфигурации apache на HTTPS с HTTP (порт 80)

person Rico    schedule 30.11.2018
comment
Извините за задержку с ответом, люди прибыли из другого города. В контроллере входящего трафика я вижу, что он создает сайт по умолчанию, и в нем есть только порт 80, а в нем нет ssl или порта 443, как у других входов, которые мы настроили. Кроме того, Apache не выполняет перенаправление, так как я нашел конфигурацию Apache из образа и правильно настроил его на виртуальной машине. Я получаю сайт nginx по умолчанию, поэтому он должен быть где-то I. Контроллер. Немного опубликую вывод конфигов - person sgarre02; 04.12.2018