traefik 1.7.11 基于子域的访问规则设置

traefik 1.7.11 subdomain based access rules setup

我想在 Kubernetes (EKS) 上为 traefik (1.7.11) 入口控制器 运行 创建基于 IP 的子域访问规则。允许所有 IP 与 external/frontend 入口点

通信
traefik.toml: |
  defaultEntryPoints = ["http","https"]
  logLevel = "INFO"
  [entryPoints]
    [entryPoints.http]
      address = ":80"
      compress = true
      [entryPoints.http.redirect]
      entryPoint = "https"
      [entryPoints.http.whiteList]
      sourceRange = ["0.0.0.0/0"]
    [entryPoints.https]
      address = ":443"
      compress = true
      [entryPoints.https.tls]
      [entryPoints.https.whiteList]
      sourceRange = ["0.0.0.0/0"]

但是我们在这个集群中只有 prod 个环境 运行。

想要限制某些端点,如 monitoring.domain.com 可从有限的 IP(办公室位置)访问,并保持 *.domain.com(默认)可从 public 互联网访问。

无论如何我可以在 traefik 完成?

您可以尝试使用 traefik.ingress.kubernetes.io/whitelist-source-range: "x.x.x.x/x, xxxx::/x" Traefik annotation on you Ingress 对象。您还可以拥有 4 个 Ingress 对象。 stage.domain.comqa.domain.comdev.domain.comprod.domain.com.

各一个

对于 prod.domain.com 以外的任何内容,您都可以添加白名单。

另一种选择是将每个环境的 traefik.toml 更改为 [entryPoints.http.whitelist] but you may have to have different ingress controllers with a different ingress class