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

aas*_*key 5 kubernetes google-kubernetes-engine

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服务注释,用于指定每个服务端口的预期协议。在将协议视为HTTPS后,入口控制器将通过HTTPS运行状况检查,将GCP L7负载均衡器与HTTPS后端服务组装在一起。”

尚不清楚负载均衡器是否接受第三方签名的服务器证书,自签名的证书,或两者都接受。应如何在负载平衡器上配置CA证书以进行后端服务器身份验证。否则它将绕过身份验证检查。

Ger*_*erg 6

ingress-nginx可以使用nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" 注释并将其指向服务上的 HTTPS 端口。

这是入口控制器特定的,其他入口控制器可能不提供该选项(或提供工作方式不同的选项)

通过此设置,入口控制器可以解密流量。(这允许入口控制器控制密码和向用户提供的证书等内容,并执行基于路径的路由,这是 SSL 直通不允许的)

可以使用其他一些(ingress-nginx特定)注释来配置证书验证: 文档

  • nginx.ingress.kubernetes.io/proxy-ssl-verify(默认为“off”)
  • nginx.ingress.kubernetes.io/proxy-ssl-verify-深度
  • nginx.ingress.kubernetes.io/proxy-ssl-ciphers(密码,与验证无关)
  • nginx.ingress.kubernetes.io/proxy-ssl-name(覆盖检查证书的名称)
  • nginx.ingress.kubernetes.io/proxy-ssl-protocols(SSL / TLS 版本)
  • nginx.ingress.kubernetes.io/proxy-ssl-server-name(SNI 直通)


Ali*_*odi 1

您应该为入口或负载均衡器启用 SSL 直通配置。我建议您使用 nginx ingress 和 kube-lego 来实现 SSL。

通过这种组合,您可以使用 ssl-passthrough 配置。

k8s 的 Nginx 入口

kube-lego 用于动态生成 SSL 证书

启用 ssl-passthrough 配置指南