首页 > 解决方案 > k8s / 命名空间 - 创建“子”命名空间

问题描述

是否可以在 Kubernetes 的命名空间之间共享 pod?


给定如下设置:

命名空间
一个 team_1
team_1
C team_1
D team_1

这就是我想要实现的目标:

命名空间
一个 team_1
team_1
C team_1
D team_1
一个 team_1_JIRA-12

我想(即时)创建一个新的命名空间,特定于给定的拉取请求,它只“覆盖”少数几个 pod,同时仍然能够与来自父 ns 的 pod 通信。

标签: kubernetesoverlay

解决方案


是否可以在 Kubernetes 的命名空间之间共享 pod?

简短的回答:不,这是不可能的。

正如Malathi在她的回答中已经提到的,aPod不能属于多个命名空间。

查看网络策略,因为它们似乎是您的用例的正确解决方案。正如您可以在文档中阅读的那样:

如果您想在 IP 地址或端口级别(OSI 第 3 层或第 4 层)控制流量,则可以考虑将 Kubernetes NetworkPolicies 用于集群中的特定应用程序。NetworkPolicies 是一个以应用程序为中心的构造,它允许您指定如何允许 Pod 与各种网络“实体”进行通信(我们在这里使用“实体”一词来避免重载更常见的术语,例如“端点”和“服务” ,具有特定的 Kubernetes 内涵)在网络上。

Pod 可以与之通信的实体通过以下 3 个标识符的组合来标识:

允许的其他 Pod(例外:Pod 无法阻止对自身的访问) node) 在定义基于 pod 或命名空间的 NetworkPolicy 时,您使用选择器来指定允许进出与选择器匹配的 Pod 的流量。


推荐阅读