Kubernetes networkpolicy将命名空间和pod与端口隔离

Kubernetes networkpolicy将命名空间和pod与端口隔离,kubernetes,kubernetes-networkpolicy,Kubernetes,Kubernetes Networkpolicy,库伯内特斯V19 创建一个名为allow port from namespace的新网络策略,该策略允许现有内部命名空间中的POD连接到同一命名空间中其他POD的端口80 确保新的网络策略: 不允许访问未在端口80上侦听的播客 不允许从不在内部命名空间中的POD进行访问 我需要知道我是否可以在不向namspace和pod添加标签的情况下完成此操作?在您的阅读中: 默认情况下,POD是非隔离的;他们接受来自任何地方的交通 来源 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的名称空间


因此,是的,只要在要针对的名称空间中部署网络策略,就可以在不向名称空间添加标签的情况下执行此操作。你也可以不向一个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