首页 > 解决方案 > Kubernetes 中的网络策略以允许来自命名空间的端口

问题描述

在现有命名空间 snafu 中创建一个名为 allow-port-from-namespace 的新 NetworkPolicy。确保新的 NetworkPolicy 允许 namespace internal 中的 Pod 连接到 namespace snafu 中 Pod 的 8080 端口。进一步确保新的 NetworkPolicy: 不允许访问 Pod,即不监听端口 8080 的 Pod 不允许访问 Pod,不在命名空间内部。

请帮我解决这个问题。

另外请验证以下 yaml(在评论部分)是否正确并帮助我理解问题的第二部分(进一步确保新的 NetworkPolicy: 不允许访问 Pods,它不允许在端口 8080 上侦听不允许从不在命名空间内部的 Pod 访问)

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-port-from-namespace
  namespace: snafu
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: internal
    ports:
    - protocol: TCP
      port: 8080 
  


 

标签: kuberneteskubernetes-networkpolicy

解决方案


第二部分意味着您必须默认隔离命名空间 snafu 中的所有 pod,这意味着您需要将podSelector字段更改为:

...
spec:
  podSelector: {}
...

推荐阅读