Istio 使用经验分享
个人背景
演讲者 Joe Searcy 是 T-Mobile 的 Staff Engineer,自 Kubernetes v1.4 和 Istio v0.8.0 开始使用,积极参与 Kubernetes 社区并组织 Atlanta Meetup,同时负责 T-Mobile 的核心平台、Mesh 平台和共享工具链等工作。
使用背景与目标
T-Mobile 面临集群规模增长、应用复杂、平台多样、安全需求等问题,目标是实现平台生命周期自动化、混合 Mesh/非 Mesh 部署和迭代采用。
Istio 实施情况
- 版本管理:采用统一版本控制,不同环境(sandbox、non-production)和区域(region1)使用不同版本。
- 生命周期管理:通过自动化流程进行新版本构建、验证、回归测试、用户测试和灰度发布。
- 用户体验:通过
istiod 组件实现 Ingress/Egress 管理,简化应用部署。
- SNI 路由:展示客户端通过负载均衡器访问不同数据库实例的 SNI 路由示例。
面临的挑战
- 复杂性:整体架构复杂,用户难以理解。
- 稳定性:版本发布稳定性不足,API 一致性差。
- 多租户:缺乏明确的多租户支持。
- 发布节奏:支持节奏过快,用户难以跟上。
经验总结
- 复杂性:基于实际需求驱动采用,定义简单使用模式,逐步迭代。
- 稳定性:自动化测试和失败捕获,积极参与社区贡献。
- 可用性:平台团队与开发团队紧密协作。
- 风险隔离:多控制平面实现多集群 Mesh,利用 Policy-as-code 降低风险。
成果与价值
- 降本增效:MTTR 降低 50%,节省超过 10 万工程小时。
- 核心价值:提升可观测性(Metrics、Tracing、可视化)、增强安全性(mTLS、服务认证授权)、简化应用逻辑、提升 Envoy 能力(Filters & WebAssembly)。