kubernetes 我们是否应该在单个k8s网络策略中保留一个单元的所有出口?

2ekbmq32  于 2022-12-11  发布在  Kubernetes
关注(0)|答案(2)|浏览(164)

我有一个pod,它发出指标,它有多个出口相关联,如-
1.身份验证端点(tcp/443)
1.域名系统(UDP/53)
1.示例元数据(tcp/80)
1.其他pod(全部)

为上述所有内容定义策略的好做法是什么-

1 -单个网络策略中的所有出口
示例(所有出口采用相同策略)

apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: metrics-emitter-egress-to-multiple-points
    spec:
      podSelector:
        matchLabels:
          name: metrics-emitter
      policyTypes:
      - Egress
      egress:
      - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
        - protocol: TCP
          port: 443
      - to:
        ports:
        - protocol: UDP
          port: 53
      - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
        - protocol: TCP
          port: 9443


2 -每个出口使用不同的NetworkPolicy
示例(每个NetPol不同)-

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: metrics-emitter-egress-to-auth-endpoint
spec:
  podSelector:
    matchLabels:
      name: metrics-emitter
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
    ports:
    - protocol: TCP
      port: 443

 ---
 apiVersion: networking.k8s.io/v1
 kind: NetworkPolicy
 metadata:
   name: metrics-emitter-egress-to-dns
 spec:
   podSelector:
     matchLabels:
       name: metrics-emitter
   policyTypes:
   - Egress
   egress:
   - to:
     ports:
     - protocol: UDP
       port: 53

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: metrics-emitter-egress-to-api-server
spec:
  podSelector:
    matchLabels:
      name: metrics-emitter
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
    ports:
    - protocol: TCP
      port: 9443
aurhwmvo

aurhwmvo1#

最好是在一个单一的管理所有的政策,否则你将不得不通过吨类似的线。
也很容易将有助于减轻任何问题,如果一个类似的政策正在添加或覆盖发生。

s4n0splo

s4n0splo2#

网络策略可用于指定允许进入pod和允许从pod出去。这些规范的工作方式与预期一致:如果允许从集群之外的外部网络端点进入POD,则允许从该端点到POD的流量。
最好在单个网络策略中定义所有策略。
在覆盖或添加类似策略的情况下,可降低因发生任何不良事件而造成损失的风险

相关问题