1

我正在建立一个 EKS集群,AWS并且我想保护 Kuberentes 集群中的所有传输中的数据(以及 EKS 和外部系统之间的数据,但这超出了这里的范围)。

在 Kubernetes 中不同的 pods 之间使用了不同的协议,主要Rest/HTTP也是microservice-pods with a KafkaBroker和 JDBC 之间的通信microservice-pods and database pods(Zalando Postgres)之间filebeat-pod and elasticsearch,...

我看到了几个选项,但我不喜欢其中任何一个。

  • 单独加密每个通信-> 工作量太大。运营噩梦
  • Istio 或 LinkerD --> 仅适用于 Http 和 gRPC,不适用于 KafkaCommunication。重型控制平面。
  • 像 WeaveNet 这样的 CNI --> 不支持 SecurityGroups、FlowLogs、ACL

有更好的选择吗?你会推荐这些选项中的任何一个吗?

4

1 回答 1

3

一种可能的解决方案是在所有 pod 上使用nginx sidecar 反向代理 来捕获所有出站流量,并结合 nginx 的proxy_protocol指令与 ELB 和其他负载均衡器一起操作。

您可以通过修改 iptables(或您在设置中选择使用的任何 SDN/模式)强制所有出站流量进入反向代理而不是将其发送到 Internet 来完成此操作。然后,您使用内部指令proxy_protocol强制所有上游 TCP 连接使用由反向代理定义的证书进行加密的 SSL。

这应该适用于您定义的协议,因为它们都基于 TCP。

于 2019-03-29T22:02:16.987 回答