谷歌容器引擎中的IP白名单,入口无法正常工作

时间:2017-11-29 17:35:17

标签: kubernetes whitelist

我正在尝试将可以访问我的应用程序的IP列入白名单。我按照本教程创建了http-balancer。 https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer

使用NodePort创建服务后,我创建了一个类似下面的ingress.yaml文件。我创建了一个全局静态IP并设置了一个域名。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
spec:
  rules:
  - host: <domain_name>
  - http:
      paths:
      - path: /*
        backend:
            serviceName: nginx
            servicePort: 80

上面的yaml文件工作正常,我可以访问“欢迎使用Nginx”页面。

但是,当我添加要列入白名单的IP时,它似乎不起作用,仍然允许其他未列入白名单的IP。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: <global-static-ip>
    ingress.kubernetes.io/whitelist-source-range: "xx.xx.xx.xxx/32"
spec:
  rules:
  - host: <domain_name>
  - http:
      paths:
      - path: /*
        backend:
            serviceName: nginx
            servicePort: 80

参考: http://container-solutions.com/kubernetes-quick-tip/ https://docs.giantswarm.io/guides/advanced-ingress-configuration/

2 个答案:

答案 0 :(得分:1)

我没有使用Ingress,但根据正常的nginx规则,你需要拒绝所有,然后允许白名单IPS

          `location / {
                    proxy_pass https://xxx.xx.xx.xx:8080 
                    allow xx.xx.xx.xxx/32; 
                    deny all; 
                     allow xx.xx.xx.xxx/32; 
           }`

哪个内容不允许使用非白名单的IP。

答案 1 :(得分:0)

您提供的参考资料使用Nginx-based ingress controller

GKE上的Ingress使用http(s) load balancer。目前,GCP上的http(s)负载均衡器不支持允许或拒绝IP流量的防火墙规则。

你可以:

自行阻止Web服务器或应用程序中的源IP。

尝试安装nginx-based ingress controller