Kubernetes 网络策略:来自生产环境事故的教训

发布日期:2026-07-17 10:01:52   浏览量 :1
发布日期:2026-07-17 10:01:52  
1

为什么默认的 Kubernetes 网络配置是错误的

全新的 Kubernetes 集群:

  • 每个 Pod 都可以与任何其他 Pod 通信
  • 跨命名空间、跨服务、跨环境
  • 没有出站流量限制
  • 没有入站流量限制

这简直是在等待横向移动攻击的发生。一个被攻陷的 Pod 等于整个集群沦陷。

网络策略可以解决这个问题。大多数团队直到第一次安全审计时才想起使用它们。

一条会破坏系统的简单规则

从这条原则开始:“默认拒绝所有流量,仅显式允许你需要的流量。”

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: production
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

将此策略应用到一个正在运行的命名空间,一切都会崩溃

  • Pod 无法访问域名系统(kube-dns 位于 kube-system 中)
  • Pod 无法访问应用程序接口服务器
  • 指标抓取失败
  • 服务网格控制平面失去连接

这不是漏洞。这正是目的所在。你必须显式允许所有必要的通信。

白名单模式

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: api-server
  namespace: production
spec:
  podSelector:
    matchLabels:
      app: api-server
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - protocol: TCP
      port: 8080
  egress:
  # DNS
  - to:
    - namespaceSelector:
        mat

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据