K8s Gateway API + Traefik 生产上线 Checklist k8s gateway api traefik checklist Kubernetes Gateway API Traefik 云原生 后端
757 字
4 分钟
K8s Gateway API + Traefik 生产上线 Checklist

先说目标#

这篇不讲概念 只给可执行清单 目标是四件事

  • 稳定
  • 可观测
  • 可灰度
  • 可回滚

上线前先对齐三个指标#

  • 可用性目标 例如月可用性 >= 99.95%
  • 延迟目标 例如 P95 < 120ms P99 < 300ms
  • 恢复目标 例如 RTO 10m RPO 1m
NOTE

没有指标就没有上线完成


角色边界清单#

  • 平台团队负责 GatewayClass Gateway
  • 业务团队负责 HTTPRoute
  • 跨命名空间引用必须有 ReferenceGrant
  • 业务命名空间不能直接改核心 Gateway

Traefik 部署清单#

高可用#

  • replicas >= 2
  • podAntiAffinity 已配置
  • PodDisruptionBudget 已配置

资源和弹性#

  • requests/limits 已配置
  • HPA 已配置
  • 高峰压测已通过

升级策略#

  • maxUnavailable: 0
  • maxSurge: 1
  • 滚动升级期间无中断

Gateway 治理清单#

  • allowedRoutes 使用白名单策略
  • 生产环境避免直接 from: All
  • Gateway 命名规范统一
  • Route 命名规范统一

示例

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: gw-public
namespace: infra-gateway
spec:
gatewayClassName: traefik
listeners:
- name: https
protocol: HTTPS
port: 443
tls:
mode: Terminate
certificateRefs:
- kind: Secret
name: wildcard-example-com
allowedRoutes:
namespaces:
from: Selector
selector:
matchLabels:
gateway-access: "true"

TLS 清单#

  • 已启用 80 -> 443 强制跳转
  • 证书自动签发和续期可用
  • 证书过期告警可触达
  • TLS 最低版本策略已生效
  • 证书 Secret 命名空间正确

证书问题通常不是功能故障 会直接变成线上事故


灰度清单#

  • 灰度路径已定义
  • 权重切流脚本可执行
  • 异常阈值已定义
  • 自动回滚条件已定义

推荐节奏

1% -> 5% -> 20% -> 50% -> 100%

示例

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: app-route
namespace: app
spec:
parentRefs:
- name: gw-public
namespace: infra-gateway
hostnames:
- api.example.com
rules:
- matches:
- path:
type: PathPrefix
value: /v1
backendRefs:
- name: app-v1
port: 8080
weight: 90
- name: app-v2
port: 8080
weight: 10

观测清单#

指标#

  • 网关入口 QPS/RPS
  • 2xx/4xx/5xx 比例
  • P95/P99 延迟
  • 上游错误率 重试率 超时率
  • Traefik Pod CPU 内存 重启次数

日志和追踪#

  • 访问日志采样已启用
  • Request ID Trace ID 已透传
  • 错误日志按 Route 聚合

安全清单#

  • 网关命名空间独立 RBAC
  • Traefik 控制面仅内网访问
  • 高风险路径有 ACL 或 WAF
  • 限流策略已生效

回滚清单#

  • 旧配置快照已保留
  • 回滚脚本可执行
  • 灰度观察窗口已约定
  • 超阈值自动回滚可触发
  • 回滚后验证脚本可执行

回滚流程

  1. 新入口灰度切流
  2. 观察 10 ~ 15 分钟
  3. 指标超阈值立即回滚权重
  4. 必要时切回旧入口

发布日 Runbook#

阶段动作通过条件
T-30m配置冻结无临时高风险变更
T-10m健康检查核心探针全绿
T+0m开始灰度1% 流量成功
T+15m提升流量指标稳定
T+45m全量切流错误率和延迟在阈值内
T+60m结束观察无异常告警

结尾#

Gateway API 迁移里最关键的不是 YAML 是工程化流程

我的实践重点一直是三件事

  • 边界清晰
  • 观测完整
  • 回滚快速

把这三件事做实 入口层就能长期稳定

K8s Gateway API + Traefik 生产上线 Checklist
https://bangwu.top/posts/k8s-gateway-api-traefik-checklist/
作者
棒无
发布于
2026-02-27
许可协议
CC BY-NC-SA 4.0