Kubernetes入口:如何启用HTTPS到后端服务

4smxwvx5  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(3)|浏览(278)

典型的TLS配置入口如下所示:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: no-rules-map spec: tls: - secretName: testsecret backend: serviceName: s1 servicePort: 80
默认情况下,负载均衡器将在HTTP中与后端服务对话。我可以配置Ingress,使负载均衡器和后端服务之间的通信也是HTTPS吗?
更新:
发现GLBC在谈论为GCE Ingress启用HTTPS后端。文件摘录:
“后端HTTPS
对于负载均衡器和Kubernetes服务之间的加密通信,您需要将服务的端口装饰为预期的HTTPS。有一个alpha Service注解用于指定每个服务端口的预期协议。在看到协议为HTTPS时,入口控制器将组装具有HTTPS后端服务的GCP L7负载均衡器,该HTTPS后端服务具有HTTPS健康检查。”
目前尚不清楚负载均衡器是否接受第三方签名的服务器证书、自签名的服务器证书,或两者兼而有之。应如何在负载均衡器上配置CA证书以执行后端服务器身份验证。否则将绕过身份验证检查。

5n0oy7gb

5n0oy7gb1#

ingress-nginx上,您可以使用nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"注解并将其指向服务上的HTTPS端口。
这是特定于入口控制器的,其他入口控制器可能不提供该选项(或提供以不同方式工作的选项)
通过这种设置,入口控制器解密流量。(这允许入口控制器控制诸如密码和呈现给用户的证书之类的事情,并执行基于路径的路由,这是SSL passthrough不允许的)
可以使用其他几个(ingress-nginx特定的)注解配置证书验证:文档

  • www.example.com (默认为“off”)
  • www.example.com
  • www.example.com (密码,与验证无关)
  • www.example.com (覆盖检查证书所依据的名称)
  • www.example.com (SSL / TLS版本)
  • www.example.com (SNI直通)
mf98qq94

mf98qq942#

按照GLBC中“后端HTTPS”部分的说明操作,GCP HTTP(S)负载均衡器将与后端建立HTTPS连接,流量将被加密。LB端不需要配置CA证书(实际上不能配置)。这意味着负载平衡器将跳过服务器证书身份验证。

pbpqsu0x

pbpqsu0x3#

您应该为入口或负载均衡器启用SSL-Passthrough配置。我建议你使用nginx inge和kube-lego来实现SSL。
通过这种组合,您可以使用ssl-passthrough配置。
Nginx ingress for k8s
kube-lego for generating SSL certificate on the fly
启用ssl-passthrough配置指南

相关问题