王泽锋 K8S在华为云的实践与发展

1. 从平台构建到领域深耕—— K8S在华为云的实践与发展 王泽锋 @kevin-wangzefeng 华为云Kubernetes开源负责人
3. 王泽锋 • 华为云Kubernetes开源负责人 Kubernetes 社区 Maintainer,曾主导负责社区亲和/ 反亲和性等多项高级调度特性设计和开发。 • 华为云 PaaS 服务团队核心成员,2013年起参与华为 PaaS平台及容器服务产品构建 • 目前负责华为云在 Kubernetes、云原生领域开源贡献, 相关项目在华为云产品化落地的整体工作。 KubeGene和KubeEdge项目联合发起人。
4. • Kubernetes 在华为的落地与发展 • 在基因测序中使用K8s的探索与实践 • 基于K8s构建云边统一平台的实践与进展
5. 华为云容器实践历程 Kubernetes 2013 华为PaaS项目启动 基于CloudFoundry 构建PaaS平台 2014 2016 2018 华为PaaS项目二期 (FusionStage) 华为云容器引擎服 务发布 华为云容器实例服 务发布 切换至Kubernetes平 台,并大力投入K8S 与CNCF 国内首家基于 Kubernetes的公有 云容器服务,提供企 业级保障 全球首家基于 Kubernetes的公有云 Serverless容器服务, 容器免运维、按需使用
6. 华为云K8S全栈容器服务 应用编排 交付 运维 治理全生命周期 云容器引擎 企业级高可靠、高性能K8S服务 服务网格 K8S原生Service Mesh 云容器实例 基于K8S的Serverless容器服务 应用运维管理 丰富可定制的容器应用立体化运维 容器镜像服务 容器镜像一站式构建、 存储与交付 应用编排服务 应用云上自动化编排与设施管理
7. 积极回馈社区,推动K8s发展 调度: • 多云多集群: • ‐ 高级调度策略 NodeAffinity ‐ 跨集群应用管理 Federation v1 ‐ 高级调度策略 PodAffinity ‐ 跨集群应用管理 Federation v2 (new) ‐ 高级调度策略 Taints-tolerations ‐ 高性能调度器 Poseidon (new) 网络: • ‐ Service性能优化 Kube-proxy IPVS mode ‐ 多网络平面 CNI-Genie (第三方插件) ‐ 高级路由策略 *Topology Aware Service Routing *: Working in progress 集群生命周期管理: • ‐ ComponentConfig (new) ‐ Cluster-API-provider-openstack (new) 高级存储特性: • ‐ 区域化存储自动创建 Topology Aware volume provisioning (new) ‐ 存储快照 Volume Snapshots (new)
8. 从泛互联网到各行业领域 泛互联网 智 慧 物 流 智 慧 医 疗 工 业 制 造 金 融 政 府 Kubernetes 容器运行时 容器网络 容器存储
9. 华为云帮助基因测序行业使用Kubernetes 最小资源消耗、高密度计 Sam-flag 基因容器服务(GCS) Bwa-mapping Merge-bam Merge-sam Mark-dup 省钱 节点(VM) 节点(VM) 节点(VM) Kubernetes容器集群 算、0运维成本 节点(VM) 秒级扩容万级并发、零等待、 节点(VM) 节点(VM) 耗时降低70% 省时 快速迁移、免安装一键式重 Docker容器 节点(VM) 建,N天降至半小时 省力
10. Kubernetes帮助公有云将AI能力推到边缘 设备 边缘 设备 控制 智能边缘平台(IEF Edge) 智能边缘平台(IEF Service) [email protected] 工作负载管理&算法推送 [email protected] [email protected] 数据 接入 华为云 轻量化OS/轻量化容器引擎 边缘硬件 1. 华为智能小站Atlas 500(D芯 片)、2288服务器、 AR网关 2. 兼容广泛的第三方硬件(x86、 ARM) 云边 协同 安平场景 边缘节点管理 工业场景 企业智能(EI) EI基础平台:ML/DL EI视觉认知 EI语音语义 EI大数据 异构计算资源 车联网场景
11. • Kubernetes 在华为的落地与发展 • 在基因测序中使用K8s的探索与实践 • 基于K8s构建云边统一平台的实践与进展
12. 基因测序背景知识 基因数据处理的关键过程,数据分析所需要的软件平台会越来越重要 NGS 原始文件 (raw data) 第一阶段(primary) 质量控制 通常和测序仪类型强相关 核酸提取(dna extraction) Fastq 二代测序(NGS) 唾液样本 (saliva) 文库制备(library construction) 芯片(chip array) Chip array 第二阶段(Secondary) 生物学流水线,GATK bio-pipeline 基因型 无创非接触式 第三阶段(Tertiary) 解读 综合分析 大数据 机器学习 准备阶段(preparation) 上机测序(sequencing) 数据分析(data analysis)
13. 基因测序介绍 – 二代测序(NGS) 特点: 1. 打断成小片段,分别测序 2. 最后根据参考组,还原结果 一次可测序量很大,时间消耗远小于 上一代,成本优势明显 目前成为主流测序方法 人类基因的顺序 =》参考组
14. 拼图算法 软件处理 总长度30亿BP 每个read 300BP (如果把它看作一根筷子) 总数据数量:至少1千万只筷子。拼接的筷子总长度,从北京到上海 30X 覆盖率,再乘以30倍
15. IT设施面临的挑战—工具碎片化 >5000+ 不同的细分领域有自己的工具集 不同的语言环境
16. 基因测序主要特点 数据量大(高通量数据源) • 以HiSeq X10测序仪为例,产生1600Gb/轮 ‐ › 一个人30x全基因组样本数据FASTQ文件大约是200GB › 一个人30x全基因组中间数据sam文件大小超过600GB 计算密集 • ‐ Mapping, Filter, Deduplication, Alignment, Index, Compress, ‐ Recalibration, Depth-coverage, Cleanup, Calling-variants… 工具/应用碎片化 • ‐ 不同细分领域有自己的工具集 (超过5000种工具版本) ‐ 不同开发语言环境
17. Why K8s? Gaps? 优势 ‐ 容器镜像 封装 工具 & 运行环境 - 易于管理 ‐ 灵活精细的资源管理和调度 - 优化成本 ‐ 算法效率优化 => 并发度优化 - 降低研发难度 Gaps ‐ K8s的学习门槛 ‐ 传统HPC使用习惯 ‐ 缺少流程控制和依赖管理
18. KubeGene • 开箱即用的容器化基因测序管理框架 • 基于Kubernetes构建 • 针对基因测序场景提供: ‐ 一套针对基因测序的流程描述语法 ‐ 接近SGE用户体验的命令行工具 ‐ 定向优化的工作流引擎 ‐ 基因测序的最佳实践流程 https://kubegene.io
19. KubeGene 架构 基本概念 • ‐ Tools:测序分析软件、工具定义 ‐ Workflow:测序流程定义 ‐ Execution:流程执行实体,记录参数和进度 核心组件 • genectl ‐ › 解耦的parser设计,轻松扩展多种语法 workflow KubeGene-CLI YAML Parser 创建流程对象 (exection) DAG流程,控制Job创建 Dag-engine Plugin KubeDag ‐ › 支持通过plugin调用多种运行框架,K8s,spark等 Job …Job
20. KubeGene 核心设计理念 动态并发、非完全展开的Execution • ‐ 更小的对象,降低Etcd压力 ‐ 支持根据数据量决定并发数,如数据定长分片 Workflow支持多种并发描述语法 • ‐ 便于不同用户快速迁移到新框架 匹配测序场景的最佳实践 • ‐ 默认配置装箱策略,避免K8s集群资源碎片化
21. KubeGene后续计划 • Server-side workflow & tools management • More tools & workflow examples • Advanced job management ‐ Priority and Preemption ‐ Co-scheduling / Gang scheduling Migration tool from other platforms • ‐ Simple Job Manager ‐ Snakemake • Integration with Spark • Integration with other workflow engines • Multi-cluster
22. • Kubernetes 在华为的落地与发展 • 在基因测序中使用K8s的探索与实践 • 基于K8s构建云边统一平台的实践与进展
23. 从云到边 – 典型场景和诉求 平安城市 • 低时延:工业控制 - 微秒级,AR/VR - 毫秒级 • 数据量&带宽:数据量远大于带宽、大量数据无全局价值 • 信息安全:个人隐私数据、商业敏感数据 • 本地自治:可适应离线运行、本地自治管理、高可靠性 工业互联网 车联网
24. Why k8s? 优势与Gap 优势 • 通用的应用抽象定义 – 业界事实标准 • 容器化应用封装 – build once, run anywhere • 松耦合的架构 – 易于扩展和定制 Gaps • 资源有限,往往很少 • 网络受限 ‐ 私网,带宽有限,延迟高 需要支持离线自治 • ‐ 网络不稳,随时可能离线 ‐ 离线状态下,边缘节点能够自治
25. Kubernetes IoT Edge WG • 聚焦实现Kubernetes在IoT/边缘计算场景的方案 • Co-chair ‐ Cindy Xing (@cindyxing), Huawei ‐ Dejan Bosanac (@dejanb), Red Hat ‐ Preston Holmes (@ptone), Google ‐ Steve Wong (@cantbewong), VMWare 目标 • • 提供适用于各种IoT/边缘计算环境的参考架构 • 构建端到端的PoC,验证设计,并提供系统集成样例 • ……
26. KubeEdge – 云原生边缘计算管理框架 • 基于Kubernetes构建,100%兼容K8s API • 定制的边缘节点组件和运行时 • 可靠的消息通道 • 边缘离线可自治 • 丰富的应用/协议支持 • 简化设备访问 https://kubegene.io
27. KubeEdge 架构 App kubectl KubeEdge(Cloud Part) Containers KubeEdge(Edge Part) OS + Runtime Volume Configmap Pod Prober Event Driver/SDK ... Edged Devices Pod/Volume/... Data Store Devices MetaManager EdgeHub DeviceTwin EventBus MQTT Broker
28. KubeEdge后续计划 KubeEdge 云端部分的开源,作为Kuberentes IoT/Edge WG的参考实现 接下来的时间里,将重点构建以下能力: • K8s云边应用统一管理 • K8s configmap、secret等在边缘的支持 • 云边通信、边边通信支持 • 边缘离线自治 Checkout https://github.com/kubeedge/kubeedge#roadmap
29. 贡献 & 交流 KubeGene • ‐ 网站:https://kubegene.io ‐ Github:https://github.com/kubegene ‐ Slack:https://kubegene.slack.com KubeEdge • ‐ 网站:https://kubeedge.io ‐ Github:https://github.com/kubeedge ‐ Slack:https://kubeedge.slack.com 容器魔方 技术公众号