欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Kubernetes 网络策略:NetworkPolicy 微隔离与 CNI 实现原理

发表于:|最后更新:|分类:云原生安全|阅读:5942 次

Kubernetes 默认允许所有 Pod 之间自由通信,形成扁平化攻击面。NetworkPolicy 通过标签选择器定义入站/出站白名单,由 CNI 插件(如 Calico、Cilium)在数据平面落地为 iptables 或 eBPF 规则实现微隔离。

一、默认拒绝 + 白名单放行策略

yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: prod
spec:
  podSelector: {}
  policyTypes: ["Ingress", "Egress"]
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-api
  namespace: prod
spec:
  podSelector:
    matchLabels:
      app: api
  policyTypes: ["Ingress"]
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - protocol: TCP
      port: 8080