假设我有 2 个网络策略,用于匹配标签“app=database”的节点。认为:
- 第一个策略具有阻止所有入口流量的规则。
- 第二个策略有一个规则,允许端口 5660 上的入口流量。
尽管这是一个简单的示例,但 Kubernetes 是如何决定哪条规则胜出的呢?在具有多个重叠规则的更复杂的场景中,可能会覆盖相似的 pod,这将如何管理?例如:我们可以在网络策略中定义优先级吗?
谢谢。
假设我有 2 个网络策略,用于匹配标签“app=database”的节点。认为:
尽管这是一个简单的示例,但 Kubernetes 是如何决定哪条规则胜出的呢?在具有多个重叠规则的更复杂的场景中,可能会覆盖相似的 pod,这将如何管理?例如:我们可以在网络策略中定义优先级吗?
谢谢。
Kubernetes 网络策略现在不允许拒绝策略。只有允许策略。您基本上将 pod 的所有允许策略放在一起以获得允许的连接。
当一个 pod 上有一个或多个网络策略时,那么 至少一个网络策略允许的所有连接都将被允许。
那么默认拒绝是如何工作的。它只是告诉没有允许的连接。
更详细的解释可以在这里找到。
实际上,这取决于您的网络策略插件如何实现它。目前我们也没有办法定义优先级。如果您确实有冲突的规则,那么您就犯了一个错误。您应该尝试应用没有冲突规则的策略。