用于TCP的Traefik 2.0 IP白名单-Kubernetes CRD

时间:2019-10-15 16:56:34

标签: kubernetes traefik kubernetes-ingress traefik-ingress

我们正在使用Kubernetes和Traefik 2.0。 我们正在使用Kubernetes CRD(IngressRoute)作为Traefik的提供程序。

从Traefik Documentaion看来,中间件似乎不能用于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

1 个答案:

答案 0 :(得分:1)

是的,中间件不能用于TCP路由器。通过中间件概念的IPWhitelist仅适用于HTTP路由器。 您可以在github上跟踪问题,为TCP路由器请求中间件。

相关问题