用于 TCP 的 Traefik 2.0 IP 白名单 - Kubernetes CRD
Traefik 2.0 IPWhitelist for TCP - Kubernetes CRD
我们正在使用 Kubernetes 和 Traefik 2.0。
我们使用 Kubernetes CRD (IngressRoute) 作为 Traefik 的提供者。
从 Traefik 文档来看,中间件似乎不能用于 TCP 路由器。
我们想 IP Whitelist middleware 与 TCP 路由器一起使用,但到目前为止它只能与 Http 路由器一起使用。
这是我们的 ipWhitelist 定义:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: testIPwhitelist
spec:
ipWhiteList:
sourceRange:
- 127.0.0.1/32
- 192.168.1.7
这里是 Traefik 服务定义:
apiVersion: v1
kind: Service
metadata:
name: traefik
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- protocol: TCP
name: web
port: 8000
- protocol: TCP
name: admin
port: 8080
- protocol: TCP
name: websecure
port: 4443
- protocol: TCP
name: mongodb
port: 27017
selector:
app: traefik
IngressRoutes 定义:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: simpleingressroute
namespace: default
spec:
entryPoints:
- web
routes:
- match: PathPrefix(`/who`)
kind: Rule
services:
- name: whoami
port: 80
middlewares:
- name: testIPwhitelist
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: ingressroute.mongo
spec:
entryPoints:
- mongodb
routes:
# Match is the rule corresponding to an underlying router.
- match: HostSNI(`*`)
services:
- name: mongodb
port: 27017
middlewares:
- name: testIPwhitelist
有什么方法可以用 traefik TCP 路由器限制 IP 吗?
有关带有 Kubernetes CRD 的 traefik 的更多资源,您可以前往 here
你说得对,中间件不能用于 TCP 路由器。通过中间件概念的 IPWhitelist 仅适用于 HTTP 路由器。
您可以关注 github 为 TCP 路由器请求中间件的问题。
我们正在使用 Kubernetes 和 Traefik 2.0。 我们使用 Kubernetes CRD (IngressRoute) 作为 Traefik 的提供者。
从 Traefik 文档来看,中间件似乎不能用于 TCP 路由器。
我们想 IP Whitelist middleware 与 TCP 路由器一起使用,但到目前为止它只能与 Http 路由器一起使用。
这是我们的 ipWhitelist 定义:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: testIPwhitelist
spec:
ipWhiteList:
sourceRange:
- 127.0.0.1/32
- 192.168.1.7
这里是 Traefik 服务定义:
apiVersion: v1
kind: Service
metadata:
name: traefik
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- protocol: TCP
name: web
port: 8000
- protocol: TCP
name: admin
port: 8080
- protocol: TCP
name: websecure
port: 4443
- protocol: TCP
name: mongodb
port: 27017
selector:
app: traefik
IngressRoutes 定义:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: simpleingressroute
namespace: default
spec:
entryPoints:
- web
routes:
- match: PathPrefix(`/who`)
kind: Rule
services:
- name: whoami
port: 80
middlewares:
- name: testIPwhitelist
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: ingressroute.mongo
spec:
entryPoints:
- mongodb
routes:
# Match is the rule corresponding to an underlying router.
- match: HostSNI(`*`)
services:
- name: mongodb
port: 27017
middlewares:
- name: testIPwhitelist
有什么方法可以用 traefik TCP 路由器限制 IP 吗?
有关带有 Kubernetes CRD 的 traefik 的更多资源,您可以前往 here
你说得对,中间件不能用于 TCP 路由器。通过中间件概念的 IPWhitelist 仅适用于 HTTP 路由器。 您可以关注 github 为 TCP 路由器请求中间件的问题。