1-华为CCE容器云实践
华为企业云 | CCE容器引擎实践
——从IaaS到PaaS到容器集群
容器部署时代的来临
IaaS服务如日中天
2014-2015年,大家都在安逸的使用IaaS服务;
亚马逊AWS的部署能力方面比所有竞争对手加起来还大5倍之多,2014年盈利6.6亿美元,2015年Q1盈利2.65亿美元;
阿里云在国内客户总数为140万,2015年Q3盈利6.49亿元。
容器的崛起
容器是操作系统内核自带能力,早已存在。基于linux内核已实现的轻量级高性能资源隔离机制(cgroups, namespace, lxc)
虚拟机是操作系统级别的资源隔离,容器本质上是进程级别的资源隔离,所以容器可以秒级启动,比VM要轻量很多
Docker并没有发明容器,它的核心思路在于实现应用和运行环境的整体打包,统一镜像格式
Docker只是容器的一种,还有rkt, warden等,几乎每个大厂都会自己搞一套
容器:一段简史
开放容器计划
www.opencontainers.org
1.制定一个厂商中立(vendor-neutral)联合(federated)协议
2.通过规定容器应该以什么方式制定命名空间,怎样被发现以及怎样被下载
3.可以给最终用户提供一个统一的视角(federated view),同时消除厂商锁定(vendor lock-in)
4.鼓励多样化的实现
5.华为是OCI的会员
我们离生产可用的容器服务还有多远
一个生产可用的容器服务需要……
当初是为啥要发明操作系统
• 一味的实现功能特性的软件走不远
• 合理抽象,帮助开发者管理系统复杂度
• 集群时代的合理抽象是什么?
Kubernetes带给我们的抽象
Kubernetes的手感
云原生计算基金会 cncf.io
1.专注于容器编排层的生态
2.围绕着容器打包分发、应用动态调度、微服务的以基础设施架构为中心的方式
3.推进相关技术创新、统一业界标准
4.聚焦于kubernetes,同时也和Mesos/Mesosphere DCOS协调
5.华为是CNCF的白金会员
CCE的一些尝试
• 选用kubernetes作为核心,提供正确的集群抽象
• 建立一套良好的用户使用界面
• 和I层基础设施深度整合,存储、网络……
• 提供良好的外围设施
内测中的CCE
容器SDN网络
• 支持容器网络划分子网,并支持多租户隔离(共享集群)
• 容器网络流量分离。例如管理流量、业务流量、NAS流量和备份流量(私有集群)
• 容器和容器,容器和VM之间通信
• 其余功能还在规划实现中……
集群规模调优
核心指标
• “API延时”:99%的API调用响应时间小于1秒
• “Pod启动时间”:99%的pods(已经下好镜像)启动时间在5秒以内
优化工作
• 搭建整套性能调优工具链,准确统计各项延时和吞吐
• 调试各项参数,保证集群运行在最优化的状态下
• 分析k8s系统的组件级瓶颈,代码级瓶颈
• 优化scheduler,提升调度速度100%
容器图形化编排
Kubernetes开源社区贡献
• CentOS k8s集群管理
• k8s运维系统对接kafka
• k8s运维系统对接elastic search
• 亲和/反亲和性调度
• Heapster重构及sink扩展
• 主导设计Ubernetes集群联邦
• 其他Bug和修复……
Docker开源社区贡献
• 增加关闭容器oom功能
• 容器重启策略增强
• 日志格式优化,更便于解析
• 环境依赖检测功能增强
• 增加容器cpu带宽限制
• 增加容器IO带宽限制
• 增加内存节点限制
• 增加内核内存限制
• 增加内存预留机制
• 增加swap内存限制
• Docker exec增强,增加指定用户和特权用户执行exec
• Docker build资源限制增强
• 增加ARM64支持
• 安全加固,增加seccomp支持
• 增加在容器内获取cgroup信息功能
容器集群技术能带给我们什么
未来的云软件栈
传统企业走在转型互联网企业的路上
• 用户体验越来越重要
• 业务更替越来越频繁
• 数据处理越来越成为企业的核心竞争力
• 服务端集群越来越复杂
• 分布式,增量式开发
• 持续集成,自动化测试
• 松耦合,微服务架构
• 按需伸缩,自动化运维
• 容器镜像发布
这一切都依赖于容器集群
各种新技术将受益于容器集群能力
用户会以想象不到的方式使用技术
http://console.hwclouds.com/cce