Calico计划:“全球政策”与“网络政策”之间的优先顺序

adb*_*bkp 3 calico kubernetes

我正在一个小型 Kubernetes 集群上测试 Calico 项目,并尝试找出“全局策略”和“网络策略”之间的哪一个将首先应用于数据流。

我的理解是:

  • Calico 的数据路径是 pod 的主机始终是下一跳,然后用 iptables 进行过滤
  • 策略(网络和全局)可以具有优先级(优先级较低的将先应用)

我做了很多测试,但有时全局网络策略优先于网络策略,有时恰恰相反。

你能解释一下并告诉我是否有什么地方错了吗?

谢谢你!

小智 6

全局与非全局并不是决定策略应用顺序的因素。排序由 Calico NetworkPolicyGlobalNetworkPolicy资源上的“order”字段决定,首先应用较小的“order”策略。

如果未指定,“order”默认为无穷大,因此未指定“order”的策略将最后应用。

Calico 还实现了 Kubernetes NetworkPolicy 资源,该资源没有显式的“order”字段。为了根据 Calico 资源对这些资源进行排序,我们将 Kubernetes NetworkPolicy 资源视为隐式“顺序”为 1000。

对于具有相同顺序值的策略,代码中有一个决胜局,但您不需要知道那是什么,也不需要依赖它,因为只要顺序很重要,最好使用显式的“顺序”值。