Kubernetes Nginx Ingress 通过 https 与 pod 通信

问题描述

我正在研究如何在 Nginx Ingress -> 后端服务之间实现 https 安全连接。到目前为止,我在 Nginx Ingress 控制器中设置了 SSL,该控制器使用 Lets Encrypt 证书管理器使用 http-01 挑战轮换证书。

这是我的场景:

  1. 来自互联网的客户端 -> 2. 负载均衡器 -> 3. 入口控制器(终止 TLS 流量)-> 4. 服务(端口 80)-> 5. Pod(端口 80)。

所以我的问题是如何保护入口控制器和 Pod 之间的通信,以便端到端加密流量?我需要我自己的证书颁发机构来做到这一点吗?如果是这样,是否有任何开源解决方案可以像 Cert manager 一样处理证书管理?

解决方法

1. Nginx 入口控制器 + DAPR

我不确定我可以在这里发布 youtube 网址(至少我从未见过任何人这样做)但是..我认为这 100% 正是您想要的。您的场景在第一个主题中讨论,您只需要观看它。另外还有一个好处 - 您将在那里看到逐步安装。我个人觉得这个视频很有帮助

Secure Ingress pods communication

2.您可以通过 Istio 本身实现这一目标。 Istio By Example!:Secure Ingress

3. Istio 的 Istio + Calico 网络策略

Enforce network policy for Istio

Calico 对 Istio 服务网格的支持有以下好处:

-Pod 流量控制

让您限制 Pod 内部和外部的入口流量并减轻对支持 Istio 的应用程序的常见威胁。

-支持安全目标

支持采用零信任网络模型以确保安全,包括流量加密、多个实施点和多个身份验证标准。