我正在尝试在 AWS EKS 下工作的 Kubernetes 上编写网络策略。我想要实现的是允许来自同一命名空间的 pod/pod 的流量,并允许从 AWS ALB Ingress 转发的外部流量。
AWS ALB Ingress 是在同一个 NameSpace 下创建的,所以我认为只使用DENY 来自其他命名空间的所有流量就足够了,但是当我使用来自 ALB Ingress 负载均衡器的流量时(其内部 IP 地址与 pod/豆荚)是不允许的。然后,如果我添加来自外部客户端的 ALLOW 流量,它允许进入,但也允许其他命名空间。
所以我的例子是这样的:(这不能按预期工作)
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-from-other-namespaces
namespace: os
spec:
podSelector:
matchLabels:
ingress:
- from:
- podSelector: {}
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-external
namespace: os
spec:
podSelector:
matchLabels:
app: nginx
tier: prod
customer: os
ingress:
- ports:
- port: 80
from: []
当使用第一个策略 ALB 入口被阻止时,添加第二个其他命名空间也被允许,这是我不想要的。我只能允许 AWS ALB Ingress 的内部 IP 地址,但它会随着时间的推移而变化,并且是动态创建的。