k8s ingress nginx установить цель перезаписи для домена - PullRequest
1 голос
/ 27 января 2020

Можно ли как-то добавить разные цели перезаписи для домена во входе?

У меня есть вход, который выглядит следующим образом:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: multiple-domains-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /entry1/$1
spec:
  rules:
    - host: domain1.com
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: my-service
              servicePort: 8080

Было бы неплохо, если бы я мог добавить несколько путей с разными перенаправлениями, как это:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: multiple-domains-ingress

spec:
  rules:
    - host: domain1.com
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: my-service
              servicePort: 8080
              redirect: /entry1/$1

    - host: domain2.com
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: my-service
              servicePort: 8080
              redirect: /entry2/$1

Или мне нужно создать новый вход для каждого домена? Также, если есть какие-то лучшие практики, которые я нарушаю здесь, я буду рад услышать об этом: -)

Спасибо

Ответы [ 2 ]

1 голос
/ 28 января 2020

API IngressBackend spe c включает только serviceName и servicePort, поэтому вам придется полагаться на аннотации в отдельных входных конфигурациях.

ingress- nginx specics

kubernetes ingress-nginx устанавливает "сервер" в своей конфигурации для определения входа. Это похоже на apache VirtualHost. Аннотации обычно применяются на этом уровне сервера. Поэтому, если указанная c аннотация не может включать домен, вам понадобятся отдельные входные определения.

Возможно, вам не удастся использовать аннотацию configuration-snippet, предоставляющую пользовательскую конфигурацию nginx на одном входе, но я бы избегал этого, так как это может привести к нарушению конфигурации. Это также увеличивает требование использования только nginx для входного контроллера.

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

Главное, на что следует обратить внимание, это повторные настройки. Если вы в конечном итоге управляете входными определениями для сотен доменов, вам может потребоваться создать конфигурацию из единого списка доменов, а не поддерживать ту же информацию в сотнях файлов.

0 голосов
/ 27 января 2020

Это одна из неприятных вещей в абстракции Ingress. Она была построена в виде минималистской системы, так что ее можно легко реализовать несколькими контроллерами (что сработало), но это означает, что многие функции застряли, будучи реализованными аннотациями, которые обычно не очень хорошо соответствуют абстракции, так как они обобщенная система пар ключ / значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...