我想为在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
中做到这一点?
答案 0 :(得分:1)
您可以尝试在Traefik annotation对象上使用traefik.ingress.kubernetes.io/whitelist-source-range: "x.x.x.x/x, xxxx::/x"
Ingress。您还可以具有4个Ingress对象。每个stage.domain.com
,qa.domain.com
,dev.domain.com
和prod.domain.com
一个。
对于prod.domain.com
以外的任何内容,您都可以添加白名单。
另一种选择是将traefik.toml
更改为[entryPoints.http.whitelist]
,但是对于每个环境,您可能必须具有不同的入口控制器和不同的ingress class。