首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubernetes入侵前的Nginx反向代理

在Kubernetes入侵前的Nginx反向代理
EN

Stack Overflow用户
提问于 2019-02-07 19:35:05
回答 1查看 2.5K关注 0票数 1

我们正在运行一个6节点裸金属K8s集群(3节点控制和3节点计算平面)。入口被部署,它在基于路径的路由上运行良好。最近,我们在大会前面构建了一个HA负载平衡集群,以实现大会本身的高可用性。

代码语言:javascript
复制
+---------------+       +---------+      +---------+
| Loadbalancers |  -->  | Ingress |  --> | Jenkins |
+---------------+       +---------+      +---------+

负载平衡器基本上使用浮动IP地址以反向代理模式运行nginx,该地址具有带有通配符的DNS A类型记录:

代码语言:javascript
复制
*.cnk8sv.infra A <private-IP>

然而,在这个设置中,我们无法应用基于虚拟主机的路由。在这种模式下,大会规则不会捕获任何通信量。我怀疑K8s前面的nginx正在将一些信息丢弃在headers中,因此入侵控制器无法执行基于主机的路由。

这是nginx负载平衡器的配置:

代码语言:javascript
复制
   location / {
      proxy_pass https://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Proto https;
      proxy_redirect off;
   }

侵入对象:

代码语言:javascript
复制
spec:
  rules:
  - host: jenkins.cnk8sv.infra
    http:
      paths:
      - backend:
          serviceName: jenkins
          servicePort: 8080
        path: /

一旦我们移除规则中的主机过滤器,流量星就会流动(所以是的,后端已经启动并运行)。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 08:34:02

修复是将nginx中的X-Forwarded-Proto值更改为http,因为我们的目标是端口80,即HTTP。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54580975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档