# 概述 Istio 通过 VirtualService/DestinationRule 控制东西向流量,并配合 mTLS 与熔断策略实现稳定的灰度与限流。本文给出标准配置示例与验证流程。 # 前置与安全(已验证) - 启用全局 mTLS:`PeerAuthentication` 设为 `STRICT`;服务间通信强制加密与身份校验。 - Sidecar 资源限制与探针:保证代理稳定,不成为瓶颈。 # 灰度发布示例 ```yaml apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: api-dr spec: host: api.default.svc.cluster.local subsets: - name: v1 labels: { version: v1 } - name: v2 labels: { version: v2 } trafficPolicy: outlierDetection: consecutive5xxErrors: 5 interval: 10s baseEjectionTime: 30s loadBalancer: simple: ROUND_ROBIN --- apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: api-vs spec: hosts: ["api.default.svc.cluster.local"] http: - route: - destination: { host: api.default.svc.cluster.local, subset: v1 } weight: 90 - destination: { host: api.default.svc.cluster.local, subset: v2 } weight: 10 ``` # 熔断与异常检测 - 使用 `outlierDetection` 剔除异常实例;配合 `maxRequestsPerConnection` 与连接池参数保护后端。 - 网关层限流与 WAF:在 `Gateway` 前置保护公共入口。 # 观测与验证 - `istioctl analyze` 验证配置一致性; - 指标:请求成功率、P95/P99、`x-envoy-upstream-rq-timeout` 与 ejection 事件计数; - 逐步调整权重,观察错误率与延迟回归,确认 v2 稳定后再扩大比例。 # 常见误区 - 未启用 mTLS 导致中间人风险; - 子集标签与 Deployment 不一致造成路由失效; - 一次性大比例切流导致风险不可控。 # 结语 以子集与权重控制实现平滑灰度,并配合 mTLS 与异常检测形成稳健的流量治理方案,最终以度量验证稳定性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部