如何仅在入口处允许多个 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/1710.0.0.0/16178.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