k8s / 命名空间 - 创建"child"命名空间



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


给出如下设置:

<表类> 荚 名称空间 tbody><<tr>team_1Bteam_1Cteam_1Dteam_1

是否有可能在Kubernetes的名称空间之间共享pod ?

短答:不,不可能。

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

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

如果需要在IP地址或端口级别控制流量(OSI第3层或第4层),那么您可以考虑使用Kubernetes针对集群中特定应用程序的NetworkPolicies。NetworkPolicies是一个以应用程序为中心的构造,它允许您指定如何允许pod与各种网络进行通信"entities"(我们用"实体"这个词;这里要避免重载更常见的术语,如"端点";还有"服务",它们有(具体的Kubernetes内涵)通过网络。

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

允许的其他pod(例外:pod不能阻止访问)允许IP块的命名空间(例外:到从Pod运行的节点,无论如何都是允许的Pod或节点的IP地址)定义Pod - or时基于名称空间的NetworkPolicy,您可以使用选择器来指定允许流量进出与选择器匹配的Pod。

Kubernetes不允许在两个命名空间之间共享pod。但是,您可以为pod a定义一个名为服务a的服务,并使用kubernetes DNS访问另一个命名空间team_1_JIRA-12中的服务a。您可以使用cURL访问team_1命名空间中的pod A,使用其服务如下:

kubectl create deployment nginx --image=nginx
kubectl exec -it nginx-6799fc88d8-cx84f -- bash    
root@nginx-6799fc88d8-cx84f:/# curl http://A.team_1

最新更新