我需要有关网络策略的帮助,以满足以下要求。
是否可以让命名空间A中的应用程序A仅连接到命名空间B中的应用程序B?我只希望一个命名空间中的一个应用程序连接到另一个命名空间中的一个应用程序。
我在全局有一个默认拒绝所有的网络策略。
目前,网络策略只有OR。我正在寻找的是,所以我可以说,允许命名空间A & pod A。有没有实现这一点的方法?
发布于 2019-04-09 06:19:06
是的,你可以做到。对于入口网络策略,您只需在from部分中设置namespaceSelector和podSelector,以指定名称空间和pod标签(在您的示例中,属于应用程序A和名称空间A) --选择器一起使用( ANDed )。对于目标,使用podSelector字段选择应用程序B,并确保网络策略元数据中的namespace设置为名称空间B。
请注意,要使用namespaceSelector,必须标记名称空间。默认情况下,在Kubernetes中不标记命名空间。
请查看this guide中的跨名称空间部分,以获得更全面的解释和一个YAML示例。
发布于 2018-06-22 13:07:09
Pod可以跨命名空间相互通信:
命名空间1中的应用程序1:
$ kubectl -n namespace1 get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
app1-5d8bb8ffbb-7x74v 1/1 Running 0 1d 10.233.65.115 node1.example.kz命名空间2中的应用2:
$ kubectl -n namespace2 get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
app2-569f46b8d5-fz9dw 1/1 Running 0 1d 10.233.67.80 node2.example.kz我可以从App 1连接到App 2:
kubectl -n namespace1 exec app1-5d8bb8ffbb-7x74v -- ping -c 1 10.233.67.80
PING 10.233.67.80 (10.233.67.80) 56(84) bytes of data.
64 bytes from 10.233.67.80: icmp_seq=1 ttl=62 time=0.917 ms
--- 10.233.67.80 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.917/0.917/0.917/0.000 ms这个例子非常简单。根据连接类型和应用程序配置,您可能需要Service、Ingress资源
更多信息:
此外,本文档还将对您有所帮助:
发布于 2018-06-22 16:58:20
如何使用NetworkPolicy资源配置pods组之间以及其他网络端点之间的通信。您的网络解决方案(CNI插件)必须支持NetworkPolicy,因为您需要一个控制器。简单地创建资源而不使用控制器来实现它将不会有任何效果。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
spec:
podSelector: {}
policyTypes:
- Ingress有关更多示例,请查看https://kubernetes.io/docs/concepts/services-networking/network-policies/。
https://stackoverflow.com/questions/50977229
复制相似问题