0

我是 Kubernetes 的新手,正在尝试学习 calico 网络。我正在关注此文档(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 个步骤,并尝试通过创建一个策略来进行测试,该策略将使用上述策略将流量从后端发送到客户端。

当我应用该策略时没有错误,但我看不到两者之间的流量/连接。

请让我知道出了什么问题。

4

2 回答 2

1

单独创建 NetworkPolicy 无助于确保执行 NetworkPolicy。我们应该配置像 Calico 这样的网络插件,它与 Kubernetes 集成并执行必要的操作以实现给定网络策略的意图

https://kubernetes.io/docs/concepts/services-networking/network-policies/

“网络策略是由网络插件实现的,所以你必须使用支持 NetworkPolicy 的网络解决方案——简单地创建资源而没有控制器来实现它是没有效果的。”

于 2019-04-22T08:59:30.337 回答
0

我相信您需要将策略放在client命名空间而不是stars命名空间中。我不相信role: client在 stars 命名空间中有任何 pod。像您指定的 pod 选择器仅适用于策略所在命名空间中的 pod。

虽然我认为它不像Kubernetes 网络策略文档那样直接,但确实提到了 NetworkPolicy 应用in the given namespace。如果你还没有,我建议你检查一下。

我希望这会有所帮助。

于 2018-10-02T14:12:57.810 回答