Назад | Перейти на главную страницу

Kubernetes Ingress белый список-источник-диапазон для локальной сети

У нас есть вход Kubernetes в нашем кластере. Мы хотели ограничить доступ к нему только тем, кто обращается к нему из нашей локальной сети (10.0.0.0/16). Итак, во входных аннотациях у меня есть nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/16".

Но это позволяет трафик из любого места. Установив его на 10.0.0.0/24 (наш диапазон DHCP), он вообще не пропускает трафик.

Когда я проверяю журналы nginx-ingress-controller, я вижу

10.0.10.1 - - [15 / Октябрь / 2019: 05: 40: 46 +0000] "GET / HTTP / 2.0" 200 2073 "-" "curl / 7.54.0" 38 0,019 [wfs-ipa-8443] [] 10.0.1.2:8443 2073 0,020 200 a2d2053149dd26a490251439629134ff

Это показывает, что он видит исходный IP-адрес как узел, на котором в настоящее время работает модуль входящего контроллера. Как я могу сделать так, чтобы он видел исходный IP либо как свой LAN IP, либо как единственный WAN IP, который у нас есть?

Редактировать:

ingress.yml:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ipa
  namespace: wfs
  annotations:
    kubernetes.io/ingress.class: "nginx"
    certmanager.k8s.io/cluster-issuer: "letsencrypt-prod"
    ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/use-proxy-protocol: "true"
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "off"
    nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/16"

spec:
  tls:
    - hosts:
        - ipa.example.com
      secretName: ipa-tls
  rules:
    - host: ipa.example.com
      http:
        paths:
          - backend:
              serviceName: ipa
              servicePort: 8443
            path: /