Post Detail

集群管理 - 京东的故事

Hugiss  

京东集群管理的故事。。。

2013年初

没有资源隔离。开始虚拟化工作,14人团队搞OpenStack+KVM。KVM性能不达标。

2014年秋

Docker进入视野。那时候Docker非常单薄,但是性能达标。2014年秋没有k8s,没有swarm,没法管理那么多Docker。开始选择OpenStack+Docker的架构,并定义为京东第一代容器引擎平台JDOS1.0(JD DataCenter OS)。细节:OpenStack Icehouse + Docker1.3 + OVS2.1.3

2015-2016年

2015年的起步到2016年中完成100%应用运行环境容器化。

研发上线申请计算资源由之前的一周缩短到秒级,硬件资源利用率提高三倍。

量大后发现了不少问题,比如OpenStack用到的MQ丢消息。

进行了多项改进:

  • 设计成单集群最少4千台,最多1万台机器
  • MQ改成API
  • 2个运维搞定几万台物理机
  • 基于chef的自动部署,机器上架加电完后到新的节点加入集群资源池可用的效率是 4千台物理节点/天/每人
  • 物理故障监控,机器学习预测故障,尤其是硬盘故障
  • 软件级故障大多和Linux Kernel有关,组建Linux Kernel组。多容器共享内核,内核对虽隔离但内核层面共享的资源的可以优化,如内存回收等
  • 数据库也容器化,磁盘调度算法优化,使之适应SSD,数据库创建时间缩短到1分钟,机器利用率提高5倍,70%数据库容器化
  • Storm集群有1000个容器
  • 共计15万个容器,平均一台机器<10个容器

2016-2017

第一代系统仍然是Iaas思维。第二代系统以应用和业务为出发点,以调度资源为目标。

  • 测试和预发布资源占了总资源的35%,调度到大促活动上
  • 新一代容器引擎基于k8s、Docker、OVS等项目
  • 使用Harbor来自动发布,参考
Show Disqus Comments