Пример промежуточного программного обеспечения ipwhitelist Traefik для kubernetes - PullRequest
0 голосов
/ 03 июня 2019

У меня возникли проблемы с использованием промежуточного программного обеспечения Traefik IPWhitelist в моем кластере kubernetes (1.14).

Я использую конфигурацию DaemonSet здесь:

https://docs.traefik.io/user-guide/kubernetes/

Мне бы хотелосьприменить этот белый список ко всему входящему / исходящему трафику кластера.

  • Как применить ко всему трафику?
  • Можно ли использовать аннотацию вместо IngressRoute?
  • Есть ли пример или документация, которые я пропустил?

Спасибо!

Вот что у меня есть:

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: middlewares.traefik.containo.us
spec:
  group: traefik.containo.us
  version: v1alpha1
  names:
    kind: Middleware
    plural: middlewares
    singular: middleware
  scope: Namespaced
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: cloudflare-whitelist
spec:
  ipWhiteList:
    sourceRange:
    - 2400:cb00::/32
    ...
    - 131.0.72.0/22
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: allup
  annotations:
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  tls:
    - secretName: cloudflare-tls-cert
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: app-www-service
              servicePort: http
    - host: stuff.example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: app-stuff-service
              servicePort: http
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: cloudflare-whitelist
  namespace: ingress
spec:
  entryPoints:
    - web  # <- what is this for?
  routes:
    - match: Host(`example.com`)  # <- Howto apply to all ingress?
      kind: Rule
      middlewares:
        - name: cloudflare-whitelist
    - match: Host(`stuff.example.com`)
      kind: Rule
      middlewares:
        - name: cloudflare-whitelist
  • Как применить ко всему трафику?
  • МожноЯ использую аннотацию вместо IngressRoute?
  • Есть ли пример или документация, которые я пропустил?

Спасибо!

1 Ответ

0 голосов
/ 14 июня 2019

Хорошо, вот что я нашел из полезных писем на Traefik Slack. Приведенный выше код предназначен для Traefik v2.0, который все еще находится в альфа-версии.

Для Traefik 1.7 (текущий выпуск , указанный в Руководстве по Kubernetes , как я пишу это)

Для 1.7 используйте обычные аннотации

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: allup
  annotations:
    traefik.ingress.kubernetes.io/whitelist-source-range: "2400:cb00::/32, 2606:4700::/32, 2803:f800::/32, 2405:b500::/32, 2405:8100::/32, 2a06:98c0::/29, 2c0f:f248::/32, 173.245.48.0/20, 103.21.244.0/22, 103.22.200.0/22, 103.31.4.0/22, 141.101.64.0/18, 108.162.192.0/18, 190.93.240.0/20, 188.114.96.0/20, 197.234.240.0/22, 198.41.128.0/17, 162.158.0.0/15, 104.16.0.0/12, 172.64.0.0/13, 131.0.72.0/22"
spec:
  tls:
    - secretName: cloudflare-tls-cert
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            backend:
              serviceName: app-www-service
              servicePort: http
...