如何仅在入口处允许多个 IP
How to allow multiple IPs only on ingress
我有多个 IP,我只想允许这些 IP 进入我的入口
我知道我可以在我的入口注释中做到这一点,
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/16
但我想要的是我有多个 IPS 而不仅仅是 10.0.0.0/16
因此,例如,如果我有像 178.1.0.2/17
、10.0.0.0/16
、178.2.0.3/18
这样的 IP,并且我只想允许这个 IP 进入我的入口,那么我该如何实现。
如果您正在使用 Nginx Ingress,您可以添加特定注释 whitelist-source-range
。
nginx.ingress.kubernetes.io/whitelist-source-range
You can specify allowed client IP source ranges through the nginx.ingress.kubernetes.io/whitelist-source-range annotation. The value is a comma separated list of CIDRs, e.g. 10.0.0.0/24,172.10.0.1.
要为所有 Ingress 规则全局配置此设置,可以在 NGINX ConfigMap 中设置 whitelist-source-range 值。
另外请记住:
Adding an annotation to an Ingress rule overrides any global restriction.
此外,如果您想使用 Ingress Whitelist IP for Path
,您可以查看 this thread。
示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: frontend
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/16,178.2.0.3/18,178.1.0.2/17
spec:
rules:
- host: something.something.com
http:
paths:
- path: /app1
backend:
serviceName: app1
servicePort: 80
- path: /api
backend:
serviceName: api
servicePort: 8000
ingress.extensions/frontend created
我有多个 IP,我只想允许这些 IP 进入我的入口
我知道我可以在我的入口注释中做到这一点,
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/16
但我想要的是我有多个 IPS 而不仅仅是 10.0.0.0/16
因此,例如,如果我有像 178.1.0.2/17
、10.0.0.0/16
、178.2.0.3/18
这样的 IP,并且我只想允许这个 IP 进入我的入口,那么我该如何实现。
如果您正在使用 Nginx Ingress,您可以添加特定注释 whitelist-source-range
。
nginx.ingress.kubernetes.io/whitelist-source-range
You can specify allowed client IP source ranges through the nginx.ingress.kubernetes.io/whitelist-source-range annotation. The value is a comma separated list of CIDRs, e.g. 10.0.0.0/24,172.10.0.1.
要为所有 Ingress 规则全局配置此设置,可以在 NGINX ConfigMap 中设置 whitelist-source-range 值。
另外请记住:
Adding an annotation to an Ingress rule overrides any global restriction.
此外,如果您想使用 Ingress Whitelist IP for Path
,您可以查看 this thread。
示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: frontend
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/whitelist-source-range: 10.0.0.0/16,178.2.0.3/18,178.1.0.2/17
spec:
rules:
- host: something.something.com
http:
paths:
- path: /app1
backend:
serviceName: app1
servicePort: 80
- path: /api
backend:
serviceName: api
servicePort: 8000
ingress.extensions/frontend created