Cnut 容器大会 京东

18

Transcript of Cnut 容器大会 京东

Page 1: Cnut 容器大会 京东
Page 2: Cnut 容器大会 京东

京东弹性计算云:软件定义数据中心与容器集群调度

刘海锋

Page 3: Cnut 容器大会 京东

内部基础云服务建设广告拍拍 金融商城

中间件系统数据存储、分发网络

弹性计算云

智能硬件国际化 新业务

Page 4: Cnut 容器大会 京东

挑战 : 越来越多的机器server

server

server

trading

OFC

Webpage serving

serverserver

searchadvertising

server server server

hadoop spark mpi

server

Image serving

server

Streaming compute

Page 5: Cnut 容器大会 京东

京东弹性计算云之路京东弹性计算云之路

在线容器11000+

战略项目

2014/10

2015/2

2015/618

新数据中心建设

2015/8

Page 6: Cnut 容器大会 京东

思考:虚拟机还是容器?• 技术没有新旧优劣

• 统一管理服务机、虚拟机、轻量容器–容器作为一等公民

Page 7: Cnut 容器大会 京东

思考:激进改造还是逐渐变革?• Mesos, Kubernetes, CoreOS…

• OpenStack + Docker + 集成现有基础设施

Page 8: Cnut 容器大会 京东

弹性计算云 -网络挑战 I• 采用能实在落地& 适配现有网络的 vlan模式

VM1

switch

nova-computeneutron-openvswi tch-agent

计算节点

OVS

Eth1 Eth2

VM2

neutron-dhcp-agentneutron-openvswi tch-agent

neutron-l 3-agent

网络节点

OVS

Eth1 Eth2

VM3

计算节点

OVS

Eth1 Eth2

VM4dnsmasq

dnsmasq

eth0172.17.4.10

manage swi tch

eth0172.17.4.11

eth0172.17.4.12

VLAN ID converted with flow tabledl_vlan=101 => mode_vlan_vid:1dl_vlan=102 => mode_vlan_vid:2

VLAN ID converted with flow tabledl_vlan=1 => mode_vlan_vid:101dl_vlan=2 => mode_vlan_vid:102

OVS VLAN

nova-computeneutron-openvswi tch-agent

Trunk模式、Bond4 Trunk模式、Bond4

Tag 1 Tag 2 Tag 1 Tag 2Tag 1 Tag 2

VLAN 101

VLAN 102

Page 9: Cnut 容器大会 京东

弹性计算云 -网络挑战 II

tap1 tap2

OpenvSwitchNamespace ns1 Namespace ns2

Linux Server

OVS with two veth pairs

Veth pai rovs-tap1

ovs-tap2

Veth pai r

tap1 tap2

OpenvSwitchNamespace ns1 Namespace ns2

Linux Server

OVS with two ovs ports

OVS port OVS port

• 请不要使用 veth pair• 万兆网络环境,请平衡 CPU处理网卡中断• 请勿频繁 show OVS 的 status,它设计的不是非常异步( JD改进了它)• 慎用OVS 的 Qos功能有导致内核 crash问题, JD

patch fix了它

Page 10: Cnut 容器大会 京东

弹性计算云 -存储挑战• 自研 vDisk解决 DM Thin-Pool问题 ( 生产环境频繁元数据异常& 刷盘错误 )• 分级存储投入生产环境有效适应应用对 IO要求

Container

/export/L0 (tmpfs)

/export/L1 (SSD)

/export/L2 (SAS)

/export/L3 (JFS)

Local Host

Page 11: Cnut 容器大会 京东

弹性计算云 -镜像挑战• JD compress: 镜像层间压缩技术,适应 base镜像多个版本迭代场景,有效降低镜像总大小 (compress

image-id)• JD clear all: 适应 JD众多定制镜像基于一个 base镜像迭代场景,有效避免历史镜像环境因素干扰

(entrypoint/cmd/env,,,)• JD include: 用于引入某一个单层,适应 JD软件栈堆叠场景• JD import: 用于引入其他 dockerfile

Page 12: Cnut 容器大会 京东

弹性计算云 -规模 &速度的挑战• 单个 Openstack集群管理 4k台物理计算节点

– DB读写分离– 大量使用缓存– 自研 RPC替代社区 rabbitMQ

• JD容器”着色”功能,支持秒级创建 1k台容器

Page 13: Cnut 容器大会 京东

软件定义数据中心与容器集群调度

Jingdong Datacenter Operating System (JDOS)

Containers

Persistent block storage(JFS)

Networking (vlan-ovs)

Cloud Application Platform (CAP)(deploy, logging, monitoring, container cluster scheduling)

Various Applications

IDC physical infrastructure

Page 14: Cnut 容器大会 京东

弹性微服务

两类服务: Web , Application弹性伸缩策略:资源指标,历史趋势, TPS 性能

Page 15: Cnut 容器大会 京东

规模2015 年 618 :生产环境 11000+ 个 docker 实例,接入了 1000+应用新 IDC 建设:年底规模再翻两番,大部分应用程序通过容器技术来发布

单品页 图片青龙系统

O2O 无线 拍拍 团购

频道页风控

缓存服务

登录MySQL部署管理

开发测试

Page 16: Cnut 容器大会 京东

618 大促中发挥的作用

618618 大促大促

BB

EE

CC

DD

AA618 当天弹性扩容

加速资源申请审批

节约物理资源

稳定支持大流量应用(图片展现、单品页、秒杀风控… ) 节约部署上线时间

Page 17: Cnut 容器大会 京东

正在做的事情• 规模–建设新机房:软件定义、自动化容器管理

• 技术–内部应用引擎–在线离线业务统一调度

Page 18: Cnut 容器大会 京东