Несколько секций acme для нескольких клиентов с одним входным контроллером traefik в кубернетах

Ситуация:

Я хочу, чтобы многие клиенты использовали общий набор общедоступных IP-адресов для доступа к кластеру Kubernetes.

Маршрутизация на основе имени хоста в кластере выполнена. Но я хочу предоставить HTTPS для всех доменов моих клиентов.

У меня есть набор узлов пограничного маршрутизатора с одним общедоступным IP-адресом каждый. Контроллер входящего трафика Traefik настроен как DaemonSet, прослушивающий эти узлы.

Предположим, могут быть тысячи клиентов с тысячами доменов.

Моя проблема в том, что я хочу иметь несколько acme разделов.

Извлечено из ConfigMap в моем манифесте контроллера входящего трафика:

[acme]
  email = "[email protected]"
  storage = "/etc/traefik/acme.json"
  entryPoint = "https"    
  onHostRule = true
  caServer = "https://acme-v02.api.letsencrypt.org/directory"
[[acme.domains]]
  main = "mycustomer1.com"
[acme.httpChallenge]
  entryPoint = "http"

Мое идеальное решение - разделить каждую клиентскую конфигурацию https в отдельные файлы, каждый со своими настройками acme.

Или, что еще лучше, иметь способ настроить это из входящего ресурса:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
namespace: garden
annotations:
    kubernetes.io/ingress.class: traefik

    #
    # LET'S ENCRYPT CONFIGURATION COULD BE HERE.
    # THAT WAY IT WOULD BE EASY TO CONFIGURE HTTPS FOR EACH CUSTOMER.
    #

spec:
rules:
    - host: mycustomer1.com
    http:
        paths:
        - path: /
            backend:
            serviceName: backend
            servicePort: 80

Есть ли способ добиться этого?


person Manel R. Doménech    schedule 15.07.2018    source источник


Ответы (1)


Я бы посоветовал попытаться создать несколько kind: Ingress для каждого клиента и управлять ими. У вас будет возможность использовать специальную конфигурационную карту для каждого класса Ingress.

person Nick Rak    schedule 16.07.2018