Kubernetes网络策略将出口流量限制为服务

Kubernetes网络策略将出口流量限制为服务,kubernetes,project-calico,kubernetes-networkpolicy,Kubernetes,Project Calico,Kubernetes Networkpolicy,是否可以只允许特定服务的出口流量? 这是我天真的尝试: kind: NetworkPolicy metadata: name: default-deny-all-egress namespace: default spec: podSelector: {} egress: - ports: - protocol: TCP port: 53 - protocol: UDP port: 53 to: - podSelec

是否可以只允许特定服务的出口流量? 这是我天真的尝试:

kind: NetworkPolicy
metadata:
  name: default-deny-all-egress
  namespace: default
spec:
  podSelector: {}
  egress:
  - ports:
    - protocol: TCP
      port: 53
    - protocol: UDP
      port: 53
    to:
      - podSelector:
          matchLabels:
            k8s-app: kube-dns
    
  policyTypes:
    - Egress

不,据我所知,您只能使用
podSelector
。 然而,如果您有权访问集群,我认为您仍然可以为所需的pod手动添加额外的标签,并使用
podSelector

为您提供良好的
NetworkPolicy
结构模板。以下策略允许将pod出站流量发送到同一命名空间中与pod选择器匹配的其他pod

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-egress-same-namespace
  namespace: default
spec:
  podSelector:
    matchLabels:
      color: blue
  egress:
  - to:
    - podSelector:
        matchLabels:
          color: red
    ports:
    - port: 80
我知道你可以使用下面这样的入口。不确定您是否可以将其用于出口-尚未尝试。但是要从其他名称空间访问pod,您应该以某种方式将其指向配置中

  namespaceSelector:
    matchLabels:
      shape: square