我是Kubernetes的新手,正在尝试学习印花布网络。 我正在关注本文档(https://docs.aws.amazon.com/eks/latest/userguide/calico.html) 并且我尝试创建一个网络策略,以使流量在后端到客户端之间流动:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: stars
name: backend-client
spec:
podSelector:
matchLabels:
role : client
ingress:
- from:
- namespaceSelector:
matchLabels:
role: backend
ports:
- protocol: TCP
port: 9000
我完成了文档中的所有10个步骤,并尝试通过创建一个策略来进行测试,该策略将使用上述策略将流量从后端发送到客户端。
当我应用该策略时,没有出现错误,但是我看不到两者之间的流量/连接。
请让我知道出了什么问题。
答案 0 :(得分:0)
我认为您需要将策略放在client
命名空间中,而不是stars
命名空间中。我不认为stars命名空间中有任何带有role: client
的Pod。您指定的Pod选择器仅适用于该策略所在的名称空间中的Pod。
尽管我不认为它像Kubernetes Network Policy docs那样直接,但确实提到了NetworkPolicy适用于in the given namespace
。如果您还没有的话,建议您检查一下。
我希望有帮助。
答案 1 :(得分:0)
仅创建NetworkPolicy将无助于确保实施NetworkPolicy。我们应该配置与Caliber集成的网络插件(如Calico),并执行必要的操作以实现给定网络策略的意图。
https://kubernetes.io/docs/concepts/services-networking/network-policies/说
“网络策略是由网络插件实现的,因此您必须使用支持NetworkPolicy的网络解决方案-仅创建资源而无需控制器即可实现”。