Kubernetes networkpolicy将命名空间和pod与端口隔离
库伯内特斯V19 创建一个名为allow port from namespace的新网络策略,该策略允许现有内部命名空间中的POD连接到同一命名空间中其他POD的端口80 确保新的网络策略: 不允许访问未在端口80上侦听的播客 不允许从不在内部命名空间中的POD进行访问 我需要知道我是否可以在不向namspace和pod添加标签的情况下完成此操作?在您的阅读中: 默认情况下,POD是非隔离的;他们接受来自任何地方的交通 来源 POD通过具有选择它们的网络策略而变得孤立。一旦 名称空间中存在选择特定pod的任何NetworkPolicy, 该pod将拒绝任何用户不允许的任何连接 网络政策。命名空间中未被选定的其他播客 任何网络策略都将继续接受所有流量 网络策略不冲突;它们是添加剂。如有任何政策或 策略选择一个pod,pod仅限于 这些策略的入口/出口规则的联合。因此,顺序 评估不会影响策略结果 这意味着,一旦您使用网络策略选择pod,您就永远不会设置拒绝规则,因为默认情况下,所有操作都会被拒绝。您只指定允许规则 下面让我们回到k8s文档,您可以在其中阅读以下内容: 入口中可以指定四种选择器 从一段或出口到另一段: podSelector:这将选择与 应允许作为入口源或出口的网络策略 目的地 namespaceSelector:此选项选择所有 应允许吊舱作为入口源或出口目的地 namespaceSelector和podSelector:用于 指定namespaceSelector和podSelector选择特定的 特定名称空间中的pod [……] 我不打算把所有的文档都粘贴到这里,请检查其余的 现在来回答你们的问题:我需要知道我是否可以在不向namspace和pod添加标签的情况下完成它 在上面提到的文档中,您应该注意的是,您只能使用标签将名称空间和POD作为目标 当您不使用名称空间标签选择器时,选择器会将数据故障转移到部署networkpolicy的名称空间Kubernetes networkpolicy将命名空间和pod与端口隔离,kubernetes,kubernetes-networkpolicy,Kubernetes,Kubernetes Networkpolicy,库伯内特斯V19 创建一个名为allow port from namespace的新网络策略,该策略允许现有内部命名空间中的POD连接到同一命名空间中其他POD的端口80 确保新的网络策略: 不允许访问未在端口80上侦听的播客 不允许从不在内部命名空间中的POD进行访问 我需要知道我是否可以在不向namspace和pod添加标签的情况下完成此操作?在您的阅读中: 默认情况下,POD是非隔离的;他们接受来自任何地方的交通 来源 POD通过具有选择它们的网络策略而变得孤立。一旦 名称空间中存在选择特
因此,是的,只要在要针对的名称空间中部署网络策略,就可以在不向名称空间添加标签的情况下执行此操作。你也可以不向一个pod添加标签,只要它是名称空间中唯一的pod。从问题中,我没有得到。。。完全糊涂了 语句1->在同一命名空间上,pod可以与端口80通信
语句2->不允许访问未在端口80上侦听的POD 那么,有人能在这里澄清一下吗
他们到底在问什么?我们是否需要提供pod的80访问权限?下面的yaml将帮助您解决您的问题,它确实对我有用。 重点是仅使用入口阵列的端口部分
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: network-policy
spec:
podSelector: {} #selects all the pods in the namespace deployed
policyTypes:
- Ingress
ingress:
- ports: #in input traffic allowed only through 80 port only
- protocol: TCP
port: 80
语句2->不允许访问未在端口80上侦听的POD 当pod未侦听此消息时,如何不允许服务器处于TCP状态。。您还可以让POD不侦听同一命名空间上的端口80。我不认为这是解决你的上述yaml 您需要首先标记名称空间 例如,kubectl标签ns命名空间名称env:testing 二,
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-from-namespace
namespace: staging
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
env: staging
ports:
- protocol: TCP
port: 80