谐云科技 CEO 王翱宇 - 容器技术在千万用户级企业的实践及网络方案优化
2020-02-27 56浏览
- 1.容器技术在千万用户级企业的实践及 网络方案优化 SPEAKER /王翱宇
- 2.
- 3.自我介绍 – 王翱宇 • 谐云科技CEO & 联合创始人 • 来自浙江大学SEL实验室,曾就职于美国道 富银行,浙大网新。 • 2005年毕业于浙江大学计算机学院 SEL 2016 Zhejiang University
- 4.演讲内容简介 研究方向和产品定位 落地案例介绍 容器落地方案 多集群方案 CI/CD 应用迁移 网络改造与优化
- 5.SEL实验室与容器技术书籍 SEL Zhejiang University 成立于2011年 40+浙大博士 /硕士 专注开源 PaaS/CaaS技术 2015 2016
- 6.积极参与贡献社区 • 贡献了493个Patch到Kubernetes,总共142万行代码 • 2个Kubernetes feature maintainer
- 7.IT向云端迁移的趋势与挑战 企 业 IT 架 构 演 进 竖井化、巨石型应用式IT系统架构 虚拟化?云平台化?
- 8.一个好的云平台 01 02 03 04 保障业务长期稳定、 高效的运行 快速响应业务上线 灵活的资源池,根据 客户业务量进行应用 调度 容错,及时甚至预测 性地发现、定位、诊 断故障,自我修复的 能力
- 9.落地案例-业务介绍 某互联网电视平台 在线视频 在线教育 在线购物 在线娱乐 互联网电视在线视频点播平台, 目前已与爱奇艺、腾讯视频、 华数、ICNTV、优酷、优朋等 视频服务商一起构建国内影视 资源片库,为用户提供好片、 大片、新片 互联网电视在线教育平台,有 超30万小时专业丰富的教学 资源,97.2%的小初高同步教 学课程来自国内重点名校一线 教师,并覆盖幼教启蒙、品质 生活兴趣课程,各类资源一应 俱全,真正实现专业的全龄教 育。 互联网电视打造的大屏购 物平台,覆盖电视、手机、 白电等多终端,为用户提 供一站式电视购物服务, 支付便捷,并有专业的客 服人员提供良好的售后服 务。 中国第一个精品电视游 戏平台,囊括电视、AR、 健身娱乐等各种类型游 戏及周边外设,适合全 家互动娱乐。游戏用户 数稳步增长。
- 10.落地案例-业务介绍 国内最大的开放智能终端云平台 服务超过3300万智能电视和 智能家具用户 平台对终端和服务开放 服务稳定性达到99.99% 互联网 终端 全球最大的互联网电视运营商 截至2017年3月底 该客户互联网电视用户数突破2541万 国内2138万海外403万 最丰富的运营服务内容 视频内容超过100万小时 国内最大的电视端教育资源库 国内应用数量最多的应用商店 用户 服务 国内最活跃的线上智能终端用户社群 国内互联网电视用户日活跃DAU超44.80% 国内最活跃的用户社群
- 11.基于K8S的容器管理平台 – 观云台 第三方服务 自主服务 开源服务 现代应用框架 集群管理 关键基础设施 和安全服务 混合云 业务应用 应用层 大数据 深度学习 区块链 微服务框架 容器管理平台 分布式追踪 多租户 镜像仓库 容器SDN 容器SDS 基础设施层 多容器 运行时 公有 云 容器编排/调度 安全 • 容器镜像扫描 • 容器行为分析 • 基于角色访问控制 DevOps 云控制台 私有云 服务器
- 12.多集群方案
- 13.K8S集群高可用 keepalived子进程崩溃? 第一种策略:主节点挂掉以后立即将 虚拟IP漂移到备用节点,由备用节点 提供服务。当主节点恢复时,虚拟IP 重新漂移到主节点,由主节点提供服 务; 第二种策略:主节点挂了以后尝试拉 起挂掉的服务,尝试N次,如果服务 拉起失败,则漂移虚拟IP到备用节点, 由备用节点提供服务,主节点恢复以 后,并不马上漂移虚拟IP,继续由备 用节点提供服务。
- 14.多集群架构
- 15.跨数据中心单集群
- 16.CI/CD
- 17.持续集成持续部署 1.Apply Project Jira 配置 文件 仓库 代码 仓库 Code Quality report Sonar 8.hook Gitlab Jenkins 测试环 测试完成后自动同步 生产环 境镜像 境镜像 镜像安全扫描 Push image Pull image CI Service CD Service 测试环境 开发环境 生产环境 Send Deploy/Run Report Send build/UT Report Gerrit Code Review PM DEV report 观云台
- 18.镜像仓库同步
- 19.配置中心
- 20.应用迁移
- 21.应用迁移改造 应用类型 无状态应用 有状态应用 本地持久化应用 特征 普通的web应用程序 采用Redis或 Memcached共享用 户状态 生成本地文件 收益 快速部署 弹性伸缩 自动容错 高利用率 快速部署 快速扩容 可能提升利用率 快速部署 (可能需同步数据) 改造 容器化,配置分离 做无状态改造 需要分布式存储支持 服务注册调用 解耦配置依赖 自动化部署,配置 服务发现
- 22.应用迁移改造 负载均衡 应用程序 业务逻辑 会话 用户数据 视频,照片 应用程序 业务逻辑 应用程序 业务逻辑 应用程序 业务逻辑 缓存 会话 内存中数据 数据库 用户数据 持久化数据 分布式存储 视频,照片 文件
- 23.微服务化及服务管理改造前 存储服务器 在线视频 在线教育 在线娱乐 文件服务器3 Web服务器 文件服务器2 Mysql数据库服务 Redis缓存服务器 API服务器 登陆服务 文件服务器1 推送服务器 PC网页客户端 Android客户端 IOS客户端
- 24.客户端 微服务化及服务管理改造后 存储服务器 在线视频 在线教育 在线娱乐 下单服务 Web服务器 会员服务 Mysql数据库服务器 Redis缓存服务器 网关 服务发现代理 Nginx server 文件服务器 推送服务器
- 25.日志过滤收集
- 26.应用拓扑自发现 自动构建应用拓扑,发现全链路性能瓶颈,重现业务场景,快速定位问题
- 27.基于业务指标的弹性伸缩 标准弹性指标 基于业务弹性指标
- 28.在线视频移动端监控 崩溃 网络错误 卡顿... 崩溃 ANR 网络监控 网络错误 网络性能 劫持监控 慢动作&慢交互监控 各机型综合监控
- 29.监控后台优化 延后数据处理 降低每次请求处理延时 TPS翻倍
- 30.网络方案选择及优化
- 31.K8S容器网络方案对比 网络方案功能对比 方案 技术 多节 多租 高可 点 户用 隧道 Flannel 支持 方案 OVS 支持 不支持 不支持 不支持 支持 Neutron 支持 支持 支持 路由 Calico 支持 方案 支持 支持 网络方案性能对比 高级网络 功能 不支持 支持 支持 部分支持 社区 支持 一般 一般 较好 较好 适用 场景 无依赖 无依赖 无依赖 大二层 网络类型 物理 Neutron VXLAN Flannel VXLAN Calico OVS VXLAN 延迟(ms) 带宽(Mb/s) Nginx(QPS/延迟) 0.244842 942 11439.61/4.019 0.747789 907 9065.38/5.515 0.727158 0.267684 0.35475 910 941 917 10031.23/4.886 11004.44/4.428 10457.32/4.864 3 2.85 2.5 2 1.5 K8S网络性能对比 1.64 2.05 2.49 2.15 1 0.942 0.907 0.91 0.747789 0.727158 0.5 0.244842 0.941 0.267684 0.917 0.35475 0 物理机 Neutron Flannel Calico 延迟 带宽 QPS/延迟 OVS VXLAN
- 32.网络方案改造
- 33.集群内外通信
- 34.客户端负载均衡 K8S集群 Pod1 Pod2 Pod3 K8S集群 Pod1 Pod2 Pod3 Kube- Proxy Kube-Proxy Headless Service 普通Client 普通Client 自带负载均衡Client
- 35.对外服务负载均衡优化 K8S集群 LVS nginx1 nginx-conf-generater pod1 pod2 service1 Router-Nginx-Watcher api-server nginx2 nginx-conf-generater pod3 pod4 service2
- 36.Calico网络方案实践 方案难点分析 1.nginx流量出去的时候源ip会被realserver改为LVS的VIP,所以会被felix-FORWARD链给drop掉。需要添加 source 为VIP的规则。 2.关闭nginx的interface的反向路由 /proc/sys/net/ipv4/conf/X/rp_filter=0 3.nginx-conf-generater容器从api-server定时获取nginx代理的upstream的pod的变化,并更新 对应的nginx 配置文件。
- 37.隔离更好的Neutron方案
- 38.Neutron网络方案实践 Neutron与K8S集成方案
- 39.Neutron网络方案实践 Neutron与K8S集成组件 • Neutron CNI 负责在创建/删除POD过程中给POD分配Neutron的Port 和IP • Neutron-Proxy 负责监听K8S Service创建信息,并在对应的Neutron 网络路由器中写入对应规则 UI • Ingress-Controller 是一个具有TCP/HTTP代理功能的POD,每个子网在创建 过程中自动回创建这个POD,同时通过Floating IP对 外提供服务 K8S api-server Neutron-Proxy neutron-server neutron-l3-agent neutron-lbaas-agent neutron-plugin-agent neutron-dhcp-agent neutron-metadata-agent Network Node Node Ingress-Controller Kubelet Neutron CNI Neutron-I3-agent OVS
- 40.某互联网电视私有容器云平台 服务发现 审计分析 CI/CD 镜像仓库 镜像安全 多租户 软件定义网络 在线视频 在线购物 在线教育 在线娱乐 大数据平台 智能家居 服务管理 扩缩容管理 资源管理 配置管理 4/7层管理 节点管理 构建管理 发布管理 标签管理 监控中心 日志过滤,存储,预警 数据中心A Kubernetes 专线 数据中心B 编排 调度 弹性伸缩 运维中心
- 41.总结 • 分享了容器技术基于观云台落地的过程包括多集群搭建,CI/CD对接,应用 迁移和网络的改造对接,落地对接现有方案,过程平滑。 • 效果: 基于物理机,节约了成本和资源 加快了应用发布的速度 提升了弹性伸缩的能力 提升了应用监控的水平 • 展望:持续优化
- 42.