vivo Kubernetes 集群无损升级实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. vivo Kubernetes 集群无损升级实践 束迎亚 | vivo互联网容器研发高级工程师
2. 目录 01 02 03 04 vivo 容器化集群 现状 vivo 容器化集群 无损升级挑战 vivo 容器化集群 无损升级实践 vivo 容器化集群 升级收益与未来演进 2.1 升级的必要性 3.1 升级策略 2.2 升级的挑战 3.2 升级前/中/后 实施细节
3. vivo 容器化集群现状 弹性伸缩 AI/ML 可观测性 无损发布 跨集群 …… PaaS 近十万实例 容器化进度30% IaaS 近万节点 近十个集群 多个异地机房 易用性改善 标准化管理 新功能支持 云提供商/自建数据中心 网络 主机 用户导向 完善容器化平台功能矩阵 主机 高效迭代 主机 设计驱动 助力容器化平台行业领先 稳定性建设
4. vivo 容器化集群无损升级挑战 挑战源于昨天的包袱,为什么要升级? 内部版本落后 线上集群版本多 社区高版本新功能 性能瓶颈 运维困难 苦苦追寻 高版本经历互联网大厂架构沉淀 技术积累 解决了很多性能问题和大规模问题 内部数个集群 版本不一 平台侧新功能上线有风险 高版本后期实现了很多新功能 第三方插件也对 Kubernetes 版本 有要求
5. vivo 容器化集群无损升级实践 挑战给飞行中的飞机换引擎 平台 稳定性 功能 兼容性 操作 可靠性
6. vivo 容器化集群无损升级实践 核心 目标 业务不中断 具体 方案 工作计划 解 决 方 案 升级不停服 数据不损坏 故障秒恢复 一键升级,一键回滚,集群状态可视化 升级前充分调研 升级中保持谨慎 升级后持续观察
7. vivo 容器化集群无损升级实践 Master A Master B Master C Master Master A A Master Master B B Master C node node node 原 地 升 级 P-A P-B P-C P-A P-A P-B P-B 名词解释 应用不重启,批量替换Kubernetes核心组件版本 优点 P-C P-C 1. 保证业务生命周期连续性 2. 操作可重复性强,便于一键升级 Master A Master B Master C Master A’ Master B’ Master C’ node node 替 换 升 级 P-A P-B P-C P-A’ P-B’ 缺点 1. 2. 一个节点失败可能影响全局进度,原子性差 名词解释 单节点应用轮动迁移到高版本集群,节点升级后扩容到高版本集群 优点 P-C’ 升级操作顺序严格,升级中间态管理难度大 1. 灰度逻辑管控节点版本,升级成功率高 2. 迁移业务,业务安全性有效保证 缺点 1. 业务实例被驱逐,对重启敏感型业务影响大 2. 操作繁琐,牵涉范围广,升级时间长
8. vivo 容器化集群无损升级实践 开发关注点 运维关注点 API 兼容性 控制逻辑一致性 Kubelet 稳定性 GVK 废弃/新增 特性默认启用 底层定义改变 升级过程自动化 升级失败快速回滚 GVK 字段变化 特性移除 live-restore 配置项增删 跨版本升级:v1.10 升级中间态监控 v1.17
9. vivo 容器化集群无损升级实践 升级前 API 兼容性 升级后资源无法操作问题 升级前 升级后 ETCD deployments.extensions 之所以选择升级到 1.17 版本, 很大一部分原因是 1.18 版本包含很多 API 兼容性的改动。
10. vivo 容器化集群无损升级实践 升级前 控制逻辑一致性 升级后 Pod 非预期重启 升级前 ApiServer 升级后 Controller (5min) ApiServer Controller 统一驱逐 污点驱逐 Kubelet Kubelet PodC PodC (180s) PodB PodA PodB (300s) PodA (5s)
11. vivo 容器化集群无损升级实践 升级前 Kubelet 稳定性 Kubelet 重启导致业务容器重建 升级前 Pod aa3fe Pod 升级后 重启对容器无影响 原: 重启导致容器重建 现: 旧版本 Pod 跳过检查 Pod aa3fe Pod eb2ff 改进方案 Pod Old Pod
12. vivo 容器化集群无损升级实践 升级中 高版本回滚到低版本 高版本 回滚 低版本 问题 解决方法 新增 GVK 旧版本不识别 01 API 兼容性 残留资源导致 Namespace 无法清理 03 02 备份与回滚 回滚后 控制器不兼容 ETCD ETCD snap1 ETCD snapN 升级速度 ETCD存储 版本兼容性 升级过程写入新数据 回退后不识别 10 分钟/千节点
13. vivo 容器化集群无损升级实践 升级后 监控 日志 千磨万击还坚劲,任你东西南北风 发现问题 分析问题 解决问题
14. vivo 容器化集群升级收益与未来演进 升级收益 升级这件事本身的收益… 操作简单 降低运维负担 升级后对PaaS平台的收益… 交付 用户 流程更规范 体验更满意 开发 平台 迭代更高效 功能更丰富 升级时间短 可复制性强 用户无感知 平滑无感 新特性 支持 稳定性 提升 运维复杂 度降低
15. vivo 容器化集群升级收益与未来演进 未来演进 标准化建设 自动化建设 效率建设 规划为平台 管理能力 提高效率 提供完整场景 自动化测试 控制器流量灰度 平台能力不中断 行业技术交流
16.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 04:27
浙ICP备14020137号-1 $Map of visitor$