我有一个包含多个命名空间的部署,在这个命名空间中我有几个 pod,即:
NS1:
NS2:
我想以 Pod1 只能访问 PodDB 而不能访问 Pod2 的方式限制它们之间的访问。我还想限制不同命名空间之间的流量。 我正在阅读文档,但我不明白该怎么做。我尝试了几个 NetworkPolicies 但没有成功,因为我不知道如何将特定的拒绝/访问应用于特定的 pod。
有什么帮助吗?
非常感谢。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: uk
spec:
podSelector:
matchLabels:
app: Pod1
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: Pod2
答案 0 :(得分:1)
您可以使用此编辑器来帮助您创建NetworkPolicies
:https://editor.cilium.io/
以下清单将应用于标签为 app=Pod1
的 pod,并将禁用所有传入/传出此类 pod 的呼叫,但对标签为 app=PodDB
的 pod 的呼出呼叫除外。 (请参阅下面的屏幕截图,其中的颜色对理解很有帮助)。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: pod1-policy
namespace: NS1
spec:
# the following selector specifies to which pods the rules will be applied
podSelector:
matchLabels:
app: Pod1
policyTypes:
- Ingress
- Egress
# the following rule deny all incoming requests
ingress: []
# the following rule authorize outgoing call only to pod with label app=podDB
egress:
- to:
- podSelector:
matchLabels:
app: PodDB