gpt4 book ai didi

kubernetes - 如何在同一个入口规则中同时应用 pod 选择器和命名空间选择器?

转载 作者:行者123 更新时间:2023-12-03 12:46:25 25 4
gpt4 key购买 nike

Kubernetes 文档 example here显示了如何将网络策略应用于由 pod 选择器或命名空间选择器指定的源。我可以指定同时满足这两个约束的来源吗?

例如源可以是标签为“tier=web”并部署在命名空间“ingress”中的 pod。

P.S. 目前,我通过将命名空间名称添加为 pod-labels 使其正常工作。

最佳答案

是的,这是可能的,但不是很直观。如果您查看 section below您链接的 block ,它给出了很好的解释(这似乎是在您提出问题后添加的)。 NetworkPolicy API 文档 here通常也很有帮助。

基本上,如果您像示例那样将每个选择器作为列表中的两个单独项放置,则它使用的是逻辑 OR。如果您将它们作为两个项目放在列表中的同一数组元素中(第二个项目前面没有破折号),就像下面的示例和 podSelector 和 namespaceSelector,它将起作用。在 yaml 到 json 转换器中查看这些内容可能会有所帮助。

这是他们政策中的一个入口 block ,修改为 AND 条件

      ingress:
- from:
- namespaceSelector:
matchLabels:
project: myproject
podSelector:
matchLabels:
role: frontend

如果您将 ports 规则与 tofrom 语句一起使用,则同样的逻辑适用于使用 ports 规则。您会在示例中注意到,在入口规则下,它们在 ports 前面没有破折号。如果他们在前面放了一个破折号,那将是 OR 入口和端口的条件。

这是他们讨论如何实现组合选择器时的一些 GitHub 链接:

  1. 此评论可能会提供更多背景信息。 API 已经支持 OR,否则这样做会破坏已实现的人的某些功能:https://github.com/kubernetes/kubernetes/issues/50451#issuecomment-336305625
  2. https://github.com/kubernetes/kubernetes/pull/60452

关于kubernetes - 如何在同一个入口规则中同时应用 pod 选择器和命名空间选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com