我最近不得不做类似的事情。我需要一个不允许来自其他命名空间的pod与prod交谈的策略,但是 没有 允许LoadBalancer服务在prod中到达pod。这是有用的(基于艾哈迈德的帖子):
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: isolate-prod namespace: prod spec: podSelector: {} ingress: - from: - podSelector: {} - from: - ipBlock: cidr: '0.0.0.0/0' except: ['10.0.0.0/8']
我在网络策略食谱库中谈到了这个问题: https://github.com/ahmetb/kubernetes-networkpolicy-tutorial/blob/a18f9e6e/08-allow-external-traffic.md
“ DENYING本地流量时允许EXTERNAL负载均衡器 “这不是一个有意义的用例,因此不可能使用网络策略。
对于 Service type = LoadBalancer和 Ingress 要运行的资源,您必须允许所有流量到这些资源选择的pod。
Service
Ingress
如果你真的想要你可以使用 from.ipBlock.cidr 和 from.ipBlock.cidr.except 允许来自的流量的资源 0.0.0.0/0 (所有IPv4)然后排除 10.0.0.0/8 (或GKE使用的任何私有IP范围)。
from.ipBlock.cidr
from.ipBlock.cidr.except
0.0.0.0/0
10.0.0.0/8