我可以阻止 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。
我在 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。