【问题标题】:Multiple acme sections for multiple customers with single traefik ingress controller in kubernetes在 kubernetes 中使用单个 traefik 入口控制器为多个客户提供多个 acme 部分
【发布时间】:2018-07-15 15:15:21
【问题描述】:

情况:

我希望许多客户共享一组公共 IP 来访问 Kubernetes 集群。

集群内基于主机名的路由已经完成。但我想为我所有客户的域提供 HTTPS。

我有一组边缘路由器节点,每个节点都有一个公共 IP。有一个 Traefik 入口控制器配置为 DaemonSet 在这些节点上监听。

假设可以有数千个客户拥有数千个域。

我的问题是我想要多个 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

有什么办法可以做到吗?

【问题讨论】:

    标签: kubernetes lets-encrypt traefik kubernetes-ingress


    【解决方案1】:

    我建议尝试为每个客户创建多个kind: Ingress 并管理它们。您可以为每个 Ingress 类使用特殊的 configmap

    【讨论】:

      猜你喜欢
      • 2022-07-04
      • 2019-02-11
      • 2020-07-06
      • 2020-07-09
      • 1970-01-01
      • 2021-11-30
      • 2021-12-23
      • 2021-09-15
      • 1970-01-01
      相关资源
      最近更新 更多