Ситуация:
Я хочу, чтобы многие клиенты использовали общий набор общедоступных 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
Есть ли способ добиться этого?