首页 文章

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

提问于
浏览
2

我正在尝试将可以访问我的应用程序的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 回答

  • 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 .

  • 0

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

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

    您可以:

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

    要么

    尝试安装nginx-based ingress controller .

相关问题