У нас есть вход 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: /