我可以阻止 AWS 中的 pod 和 ElastiCache 之间的连接吗

Can I block connection between a pod and ElastiCache in AWS

我在 AWS 中设置了 K8s(Pods A、B 和 C)和弹性缓存("xxx.xxxx.xx.cache.amazonaws.com")。现在我所有 pods 都可以访问弹性缓存。

我正在寻找一种可以限制通信的解决方案。我阅读了有关 calico 的内容,但我知道我可以阻止两个 pods 之间的通信。有什么方法可以让 A 与 xxx.xxxx.xx.cache.amazonaws.com 通信但阻止 Pods B 和 C.

PS: Elastice 缓存不是驻留在 k8s 集群中的东西。

您可以使用 Kubernetes network policy,您可以在其中定义出口策略,以 allow/deny 将流量从标签选择的 pods 传出到 CIDR 块或 IP。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
        except: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

以上示例阻止流量从 pods 到端口 5978 上的 10.0.0.0/24,标签为 role: db

它需要网络插件,例如 calico。按照docs在EKS集群中安装calico。