情况:
我希望许多客户共享一组公用的公共IP来访问kubernetes集群。
集群中基于主机名的路由已完成。但是我想为我所有客户的域提供HTTPS。
我有一组边缘路由器节点,每个节点都有一个公共IP。在这些节点上有一个配置为DaemonSet的Traefik入口控制器。
我们假设可以有成千上万个拥有数千个域的客户。
我的问题是我想拥有多个acme
部分。
从我的入口控制器清单中的ConfigMap中提取:
[acme]
email = "ca@mycompany.com"
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
有什么办法可以做到这一点?
答案 0 :(得分:0)
我建议尝试为每个客户创建多个kind: Ingress
并对其进行管理。您将可以为每个Ingress类使用特殊的configmap