在我的kubernetes集群中,跨越名称空间边界的所有网络流量都被阻塞,我必须使用网络策略手动启用它。
kubernetes官方文档通过pod标签或ip范围描述了networkpolicies,但我需要连接到特定的url。当然,我可以查找这个url的ip并启用它,但是如果ip发生变化,我就会遇到麻烦。
有没有推荐的方式只允许与特定的url进行通信?
发布于 2021-11-29 12:36:18
TL;DR:不可能。
根据Kubernetes API参考文档- NetworkPolicyPeer v1 networking.k8s.io,您可以在egress.to中指定以下字段:
ipBlock IPBlock描述特定的CIDR (例如"192.168.1.1/24","2001:db9::/64"),允许与网络策略规范的podSelector匹配的pods。namespaceSelector使用群集范围的标签选择名称空间。此字段遵循标准标签选择器语义;如果存在但为空,它将选择所有名称空间。如果还设置了PodSelector,则NetworkPolicyPeer作为一个整体在NamespaceSelector选择的名称空间中选择与PodSelector匹配的Pod。否则,它将选择NamespaceSelector.选择的名称空间中的所有Pod
podSelector这是一个选择Pod的标签选择器。此字段遵循标准标签选择器语义;如果存在但为空,它将选择所有pod。如果还设置了NamespaceSelector,则NetworkPolicyPeer作为一个整体在NamespaceSelector选择的名称空间中选择与PodSelector匹配的Pod。否则,它将在策略自己的命名空间中选择与PodSelector匹配的Pod。或者,更直截了当地说- NetworkPolicy可以应用于特定的IP范围、特定的命名空间或特定的pod。不支持URL。
因为您已经在使用Calico,所以您可能想看看Advanced egress access controls,它给您提供了您正在寻找的东西。然而,它是一个付费墙背后的,是Calico Enterprise的一部分。
https://stackoverflow.com/questions/70125482
复制相似问题