微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx – Kubernetes白名单 – 源 – 范围块而不是白名单IP

在GKE上运行Kubernetes

使用helm安装最新稳定版本的Nginx控制器.

Everythings运行良好,除了添加白名单源范围注释导致我完全被锁定在我的服务之外.

Ingress配置

apiVersion:extensions / v1beta1
善良:Ingress
元数据:
  name:staging-ingress
  命名空间:staging
  注释:
    kubernetes.io/ingress.class:Nginx
    ingress.kubernetes.io/whitelist-source-range:“x.x.x.x,y.y.y.y”
规格:
  规则:
     – 主持人:staging.com
      HTTP:
        路径:
         – 路径:/
          后端:
            服务名:分期业务
            servicePort:80

我连接到控制器pod并检查了Nginx配置,发现了这个:

# Deny for staging.com/
geo $the_real_ip $deny_5b3266e9d666401cb7ac676a73d8d5ae {
    default 1;

    x.x.x.x 0;
    y.y.y.y 0;
}

看起来他正在锁定我,而不是将这个IP列入白名单.但它也锁定了所有其他地址……我从staging.com主机获得403.

解决方法:

是.但是,我自己想通了.您的服务必须启用externalTrafficPolicy:Local.这意味着应该使用实际的客户端IP而不是内部群集IP.

完成这个运行
kubectl patch svc nginx-ingress-controller -p'{“spec”:{“externalTrafficPolicy”:“Local”}}’

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐