
DDoS(分布式拒绝服务攻击)是云原生架构中的隐形杀手。你可能已经拥有了精妙的容器编排,但一场流量洪水可能轻易让整个集群“宕掉”。
那问题来了:
K8S 集群如何防御 DDoS 攻击?Ingress?Service?还是节点本身?
今天这篇文章,我们从 流量入口到容器内部,手把手带你构建 K8S 的 DDoS 防线!
一、DDoS 是怎么攻击 K8S 的?
DDoS 攻击常见手法:
- • 🌊 海量 HTTP 请求打爆 Ingress Controller
- • 🚪 打开 NodePort 端口,被恶意扫描和刷爆
- • 💥 让某个 Pod CPU/Mem 暴涨,进而拖垮 Node
- • 🌐 Flood Service DNS,让 CoreDNS 挂掉
- • 🔗 滥用 Service/Ingress 的 LoadBalancer IP
而 Kubernetes 默认 不自带流量限速、WAF、防火墙功能。
所以你必须构建一层「防御体系」。
二、K8S 防 DDoS 的 7 个关键策略
1. 🌐使用云厂商的 Anti-DDoS 防护(最外层)
如果你部署在阿里云、腾讯云、AWS、GCP:
- • 开启 云防火墙
- • 启用 Anti-DDoS Basic / Advanced
- • 对
LoadBalancer
类型的 Service 启用 IP 黑白名单
✅ 这是第一道防线,优先挡住「肉眼可见的洪水攻击」。
2. 🔐限制 NodePort 的暴露范围
NodePort 虽方便,但容易被直接扫描攻击。
- • 不建议直接暴露公网 IP 的 NodePort
- • 使用
networkPolicy
+ 防火墙控制来源 - • 或用 Ingress/LoadBalancer 替代
3. 🚦Ingress 限流 + WAF 防护
对暴露服务的 Ingress Controller(如 NGINX):
✅ 开启限流和连接控制配置:
nginx.ingress.kubernetes.io/limit-rps: "5"
nginx.ingress.kubernetes.io/limit-burst-multiplier: "3"
nginx.ingress.kubernetes.io/limit-connections: "20"
✅ 可配合 Cloudflare/WAF 网关使用,提前清洗恶意请求。
4. 🧱使用 NetworkPolicy 限制内部横向传播
K8S 默认所有 Pod 可以互相访问。
一旦某个 Pod 被攻破,可能发起内部 DDoS。
使用 NetworkPolicy
控制 Pod-to-Pod 流量:
kind: NetworkPolicy
spec:
podSelector:
matchLabels:
app:sensitive-app
ingress:
-from:
-podSelector:
matchLabels:
app: trusted-client
✅ 防止攻击者横向攻击其他服务。
5. 🧠服务资源限制(LimitRange)
对关键 Pod 设置:
resources:
limits:
cpu: "500m"
memory: "512Mi"
这样即使被 DDoS,也不会占满整个节点资源。
✅ 避免“一个 Pod 拉垮一整台机器”的惨剧。
6. 🕵️部署 Rate Limiter 或 API Gateway
如果你提供 API 服务,RateLimiter 是必选项。
可选方案:
方案 | 说明 |
Istio | 自带限流、熔断、WAF、认证等 |
NGINX Ingress | 支持限流 annotation |
Envoy | 轻量级服务代理 + 限流控制 |
7. 📊启用审计与监控,提前预警
部署监控工具:
- • Prometheus + Grafana:查看请求量激增趋势
- • Loki + Grafana:分析日志高频 IP
- • Alertmanager:当请求量异常时自动告警
✅ 防御 = 监控 + 响应 + 预案。
构建 K8S DDoS 防御金字塔
┌────────────────────────┐
│ 云层 Anti-DDoS │ ← 云防护、黑白名单、负载均衡器
├────────────────────────┤
│ Ingress + WAF 限速 │ ← NGINX 限流、接入网关、API Gateway
├────────────────────────┤
│ Service 限暴露 │ ← 避免 NodePort 暴露公网
├────────────────────────┤
│ Pod 资源隔离 + 策略 │ ← LimitRange、NetworkPolicy、资源限额
├────────────────────────┤
│ 审计与预警系统 │ ← Prometheus、Loki、Grafana 告警
└────────────────────────┘
最后
DDoS 不可避免,但我们可以:
✅ 限速限源、
✅ 资源隔离、
✅ 防火墙 + 日志审计,
让攻击来时——你不慌、集群不崩、老板不骂。