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

时间:2019-05-17 18:07:55

标签: kubernetes traefik kubernetes-ingress kube-dns traefik-ingress

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

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(默认)可以从公共Internet访问。

我是否可以在traefik中做到这一点?

1 个答案:

答案 0 :(得分:1)

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

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

另一种选择是将traefik.toml更改为[entryPoints.http.whitelist],但是对于每个环境,您可能必须具有不同的入口控制器和不同的ingress class