Мы используем Kubernetes вместе с Traefik 2.0. Мы используем Kubernetes CRD (IngressRoute) в качестве провайдера с Traefik.
Судя по Traefik Documentaion, не похоже, что промежуточное ПО можно использовать для маршрутизаторов TCP.
Мы хотели бы использовать промежуточное ПО для создания белого списка IP с маршрутизатором TCP, но пока оно работает с Только Http Router.
Вот наше определение 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
Есть ли способ ограничить IP-адреса с помощью маршрутизатора TCP traefik?
Дополнительные ресурсы по traefik с Kubernetes CRD вы можете найти здесь