如何仅在入口上允许多个 IP

xox*_*der 2 kubernetes google-kubernetes-engine kubernetes-ingress nginx-ingress gke-networking

我有很多 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、 、 之类的 IP 10.0.0.0/16178.2.0.3/18并且我只想允许这些 IP 进入我的入口,那么我怎样才能实现这一点。

Pjo*_*erS 5

如果您使用Nginx Ingress,您可以添加特定注释whitelist-source-range

nginx.ingress.kubernetes.io/whitelist-source-range

您可以通过 nginx.ingress.kubernetes.io/whitelist-source-range 注解指定允许的客户端 IP 源范围。该值是逗号分隔的 CIDR 列表,例如 10.0.0.0/24,172.10.0.1。

要为所有入口规则全局配置此设置,可以在 NGINX ConfigMap 中设置白名单源范围值。

另请记住:

向 Ingress 规则添加注释会覆盖任何全局限制。

另外,如果您想使用,Ingress Whitelist IP for Path可以检查此线程

例子:

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
Run Code Online (Sandbox Code Playgroud)