gpt4 book ai didi

ssl - Kubernetes 内部 nginx 入口 Controller ,带 SSL 终止和 ssl 直通

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:55 24 4
gpt4 key购买 nike

我对使用 helm charts 部署容器非常陌生,而且我也从未使用过 nginx Controller 或入口 Controller 。但是,我被要求研究改进我们的内部 nginx 入口 Controller 以允许 SSL 直通。

现在我们有外部(面向公众)和内部 Controller 。公共(public)的允许 SSL 直通,而内部的有 SSL 终止。我还听说 nginx 是一个反向代理,它基于 URL 中的 header 工作。

我希望有人能帮我解决我为内部入口 Controller 准备的这张 Helm 图。目前我的印象是不可能在同一个入口 Controller 上同时使用 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: ""

注意:上面的代码是我们在外部入口 Controller 上使用的代码。

另外,我发现了这个: 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配置有什么区别?

我主要是在寻找有关如何在不破坏内部入口 Controller 上的 SSL 终止的情况下使 SSL 直通工作的答案。但是,就我的其他问题而言,任何额外信息以获取更多见解和知识也将不胜感激:)

最佳答案

所以我找到了我自己问题的答案:注释似乎是“配置项”。我使用引号是因为我找不到更好的术语。extraArgs 参数是您可以将任何参数传递给 Controller ​​的地方,就好像它是命令行参数一样。我认为也可以安全地说注释可以是同一顶级域中的任何一个。我还没有发现任何不是来自 kubernetes.io 的其他域

为了让我的入口 Controller 与 SSL 终止 Controller 并排工作,helm 图表如下所示:

---
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 天的时间研究/搜索网络和 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/

最后一页对我帮助很大。如果其他人开始为公共(public)或私有(private)连接部署 SSL 终止和 SSL 直通,我希望这也能有所帮助。

关于ssl - Kubernetes 内部 nginx 入口 Controller ,带 SSL 终止和 ssl 直通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58608924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com