NGINX Ingress Controller для нескольких служб для развертывания по филиалам - PullRequest
1 голос
/ 19 марта 2020

В моем случае у меня есть развертывание в филиалах в EKS 1.14, и я хочу обработать это с помощью "regex" & Nginx ingress.

Сценарий: - Допустим, у меня есть Branch B1 с service_A ( apache service), аналогично в B2 с service_A ((apache service) и т. Д., И вы хотите получить доступ к сервису через URL, например: - apache - {branch_name} .example.com Примечание: - Branch B1 / B2 это не что иное, как уникальные пространства имен, в которых работает один и тот же тип сервиса.

Мне нужен один вход, откуда я могу контролировать все различные URL-адреса веток

Мой файл примера: -

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: regex-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - '*.k8s.example.com'
    secretName: prod-crt
  rules:
  - host: {service_A-b1}.k8s.acko.in
    http:
      paths:
      - backend:
          serviceName: {service_A-b1} 
          servicePort: 80

  - host: {service_A-b2}.k8s.acko.in
    http:
      paths:
      - backend:
          serviceName: {service_A-b2}
          servicePort: 80



1 Ответ

0 голосов
/ 23 марта 2020

Nginx вход не работает таким образом, невозможно иметь регулярное выражение в serviceName и host.

С NGINX документы :

Регулярные выражения и подстановочные знаки не поддерживаются в поле spec.rules.host. Необходимо использовать полные имена хостов.

В поле path можно использовать только регулярное выражение * :

Входной контроллер поддерживает без учета регистра регулярные выражения в поле spec.rules.http.paths.path. Это можно включить, установив для аннотации nginx.ingress.kubernetes.io/use-regex значение true (по умолчанию установлено значение false).

Если вам необходимо динамически управлять serviceName и host, настоятельно рекомендую использовать некоторые из них. вид автоматизации (может быть jenkins, bash script et c ...) или шаблоны HELM , которые будут изменяться во время развертывания.

Ссылки :

https://kubernetes.github.io/ingress-nginx/user-guide/ingress-path-matching/

...