Nginx Ingress 控制器性能问题
Nginx Ingress controller performance issue
我有一个 GKE 集群、外部域名和 letsencrypt 证书。
当我使用负载平衡器并指示 pods 使用我使用 certbot 生成的证书时,性能非常好。但是我必须手动更新证书,这需要很多努力。
当使用入口控制器并让证书管理器自行更新证书时,额外的跃点会增加延迟并使流量路径更加复杂。然后连接在 h2 上从客户端到入口,然后连接变成纯 HTTP 从入口到 pods。
有什么方法可以消除使用 nginx ingress controller 时的额外跃点并解决性能问题吗?
如果您使用 cert-manager with ingress,则没有额外的跃点。
您可以使用 cert-manager 它将 cert 保存到 secret 并附加到入口。但是,这取决于您在哪里进行 TLS 终止。
如果您在入口级别支持的流量上执行 TLS 终止,则您还可以绕过 HTTPS 流量直到 POD 以进行 end-to-end 加密,直到 POD 将采用纯 HTTP。
Internet > ingress (TLS in secret) > Plain HTTP if you terminate > service > PODs
如果你想在 POD 中使用证书,你可以将密钥装载到 POD 中,应用程序将进一步使用它。
https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod
如果您要将密钥与 POD 一起使用,您可能需要重新加载 POD,在这种情况下,您可以使用重新加载程序自动推出 PODs。
我有一个 GKE 集群、外部域名和 letsencrypt 证书。 当我使用负载平衡器并指示 pods 使用我使用 certbot 生成的证书时,性能非常好。但是我必须手动更新证书,这需要很多努力。
当使用入口控制器并让证书管理器自行更新证书时,额外的跃点会增加延迟并使流量路径更加复杂。然后连接在 h2 上从客户端到入口,然后连接变成纯 HTTP 从入口到 pods。
有什么方法可以消除使用 nginx ingress controller 时的额外跃点并解决性能问题吗?
如果您使用 cert-manager with ingress,则没有额外的跃点。
您可以使用 cert-manager 它将 cert 保存到 secret 并附加到入口。但是,这取决于您在哪里进行 TLS 终止。
如果您在入口级别支持的流量上执行 TLS 终止,则您还可以绕过 HTTPS 流量直到 POD 以进行 end-to-end 加密,直到 POD 将采用纯 HTTP。
Internet > ingress (TLS in secret) > Plain HTTP if you terminate > service > PODs
如果你想在 POD 中使用证书,你可以将密钥装载到 POD 中,应用程序将进一步使用它。
https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod
如果您要将密钥与 POD 一起使用,您可能需要重新加载 POD,在这种情况下,您可以使用重新加载程序自动推出 PODs。