我正在设置一个
<强> EKS
集群于 AWS
我希望保护 Kuberentes 集群中所有正在传输的数据(以及 EKS 和外部系统之间的数据,但这超出了本文的范围)。
在 Kubernetes 中,不同 Pod 之间使用不同的协议(protocol),主要是 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
有更好的选择吗? 您会推荐这些选项中的任何一个吗?
最佳答案
一种可能的解决方案是使用 nginx sidecar reverse proxy在所有 pod 上与 nginx 的 proxy_protocol 结合捕获所有出站流量与 ELB 和其他负载均衡器一起操作的指令。
您可以通过修改 iptables(或您在设置中选择使用的任何 SDN/模式)来强制所有出站流量进入反向代理而不是将其发送到互联网来实现此目的。然后,您可以使用 proxy_protocol
中的指令来 force all upstream TCP connections to use SSL使用反向代理定义的证书进行加密。
这应该适用于您定义的协议(protocol),因为它们都基于 TCP。
关于amazon-web-services - 加密 EKS 中的流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55423295/