我对使用头盔图来部署容器非常陌生,而且我也从未使用过nginx控制器或入口控制器。 但是,有人要求我研究改进内部的Nginx入口控制器,以允许SSL直通。
现在,我们有外部(面向公众)和内部控制器。公共的服务器允许SSL直通,内部的服务器允许SSL终止。 有人还告诉我nginx是反向代理,它基于URL中的标头工作。
我希望有人可以帮我解决这个内部入口控制器的头盔图。 目前,我的印象是不可能在同一入口控制器上具有SSL终止和SSL直通。 我自己回答了这个问题:https://serversforhackers.com/c/tcp-load-balancing-with-nginx-ssl-pass-thru
我们当前的(内部)入口代码:
---
rbac:
create: true
controller:
ingressClass: nginx-internal
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu:110:certificate/62-b3
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: !!str 443
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: !!str 3600
targetPorts:
https: 80
replicaCount: 3
defaultBackend:
replicaCount: 3
我可以简单地添加以下内容吗? :
controller:
extraArgs:
enable-ssl-passthrough: ""
注意:上面的代码是我们在外部入口控制器上使用的代码。
此外,我发现了这一点: Ingress and SSL Passthrough
我可以只混合注释吗?还是注解仅关注注解的“顶级域”? 例如:
service.beta.kubernetes.io
nginx.ingress.kubernetes.io
两者都来自域kubernetes.io,还是子域有所作为? 我的意思是:https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md 该页面上没有显示任何service.beta批注..
注释中的extraArg ssl-passthrough配置和ssl-passthrough配置之间有什么区别?
我主要是在寻找如何在不破坏内部入口控制器上SSL终止的情况下实现SSL直通的答案。 但是,只要我提出其他问题,就可以获得更多的见解和知识的任何额外信息也将非常感激:)
答案 0 :(得分:1)
因此,我找到了自己的问题的答案: 注释似乎是“配置项”。我使用引号是因为找不到更好的术语。 您可以在extraArgs参数中将任何参数传递给控制器,就好像它是命令行参数一样。 而且我认为可以肯定地说,批注可以是同一顶级域中的任何一个。我没有找到不是来自另一个域的任何文件,然后是kubernetes.io
要使我的入口控制器与SSL终止控制器并排工作,头盔图表如下所示:
---
rbac:
create: true
controller:
ingressClass: nginx-internal-ssl-passthrough
service:
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "tag3=value3, tag3=value3, tag3=value3, tag3=value3"
targetPorts:
https: 443
replicaCount: 2
extraArgs:
enable-ssl-passthrough: ""
defaultBackend:
replicaCount: 2
请我花大约2天时间研究/搜索Web和6部署,以使整个设置与AWS nlb,启用ssl-passthrough,跨区域负载平衡等一起使用。但是找到以下页面后,它运行起来非常快: https://kubernetes.github.io/ingress-nginx/deploy/ https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ https://kubernetes.io/docs/concepts/services-networking/service/
最后一页对我有很大帮助。如果其他人可以为公共或私有连接部署SSL终止和SSL直通,我希望这也会有所帮助。
答案 1 :(得分:0)
从这里您可以了解如何在不终止 SSL 的情况下将 HTTPS 流量重定向到 Pod https://stackoverflow.com/a/66767691/1938507