大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

京东如何从 OpenStack 迁移至 Kubernetes

  • 2017-03-16
  • 本文字数:1383 字

    阅读完需:约 5 分钟

中国最大电商公司之一的京东,最近分享了自己通过 Kubernetes 对基于应用程序容器的基础架构进行革新,取代 OpenStack 托管的 IaaS 基础架构过程中所获得的经验。本次迁移同时涉及内部网络组件,借此可将资源利用率提高30%。

在采用应用程序容器技术之前,京东的基础架构部署经历了两个阶段:物理机(2004 – 2014)以及操作系统容器(2014 – 2016)。第一阶段主要使用手工管理的裸机硬件,但这一阶段遇到了很多问题,例如上线前的准备时间过长(从分配到应用程序上线约需要一周时间),缺乏隔离机制,资源利用率不足,调度机制不够灵活。计算机失败后往往需要花费数小时迁移应用,且缺乏自动缩放能力。工程团队针对日志收集、自动化部署、编译和打包,以及资源监视等常用任务开发了内部工具。

京东基础架构的第二阶段开始采用容器技术。当时使用了操作系统容器,这意味着需要将现有应用程序和部署架构整体迁入容器中。当时的容器可以看作是对他们原本采用的物理机进行精简后一种运行速度更快的“物理机”,并未采用已经完全成熟的“容器哲学”。

尽管如此,通过采用容器技术,他们已经在第二阶段从时间和资源的使用率方面获得了巨大的收益。当时他们使用OpenStack 作为编排层,并使用 nova Docker 驱动实现容器的管理。该团队选择 Docker 作为自己的容器平台,并逐渐向其中增添新的功能。所有应用陆续迁移到容器中,借此将计算资源请求的实现时间从原本的一周缩短至几分钟。应用程序的平均部署密度和物理机的利用率提升了三倍。该团队还针对部署任务构建了统一的 API,公司内部将其称之为 JDOS(JD Datacenter Operating System)1.0。

他们基于 OpenStack 的平台通过一个群集承载了大约 4000 至 10000 个计算节点。截至 2016 年 11 月,京东团队共运行了将近 150,000 个容器。这个平台帮助他们顺利度过了两次大流量在线促销活动,包括 2016 年双十一活动,共完成大约 3 千万个订单。

在第二阶段迁移至容器技术后,该工程团队已经可以对部署架构进行改动,使用容器作为基本的部署单位。公司内部将其称之为 JDOS 2.0。这个方法关注的并非基础架构本身的管理,而在于可感知应用程序的容器管理。他们的平台设计包含两个抽象:系统和应用程序。一个“系统”可包含多个“应用程序”,每个应用程序可包含多个提供相同服务的 Pod。一个系统对应着一个 Kubernetes 名称空间

其他组件还包括部署流程和容器化的 DevOps 工具,这些内容均部署在 Kubernetes 管理的平台上,此外还包括 Gitlab、Jenkins、Logstash、Harbor、Elasticsearch,以及 Prometheus 。部署过程中,源代码和 Dockerfile 会被推送至代码库和 Jenkins 构建。Jenkins 被配置为主从模式,其中从节点负责构建和打包应用程序,此外还有一个类似的节点负责构建容器映像。他们使用了 Harbor 这一开源的Docker 注册表存储所创建的映像。

图片来源: http://blog.kubernetes.io/2017/02/inside-jd-com-shift-to-kubernetes-from-openstack.html

为了在 Kubelets 和 OpenStack Neutron 之间实现更好的集成,京东根据 Container Networking Interface 标准自行开发了一个名为 Cane 的解决方案。在创建、删除或修改 Kubernetes 负载均衡器后,Cane 可以通知 Neutron 负载均衡即服务( LBaaS )系统。此外他们通过在 Cane 内部运行的 Hades 组件为 Pod 提供内部的 DNS 解析服务。

阅读英文原文 How JD.com Moved to Kubernetes from OpenStack

2017-03-16 19:006075
用户头像

发布了 283 篇内容, 共 117.5 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

TCC

急需上岸的小谢

11月月更

OSPF高级配置——虚链路介绍与配置

我叫于豆豆吖.

11月月更

数据预处理和特征工程-特征选择-相关性过滤-互信息法 & F检验

烧灯续昼2002

人工智能 机器学习 算法 特征工程 11月月更

【愚公系列】2022年11月 微信小程序-sitemap站内搜索

愚公搬代码

11月月更

极客时间运维进阶训练营第四周作业

忙着长大#

极客时间

使用keytool生成Tomcat证书

源字节1号

软件开发 前端开发 后端开发 小程序开发

云原生系列 二【轻松入门容器基础操作】

叶秋学长

云原生 华为云 沙箱实验 11月月更

2022-11-19:第二高的薪水。表结构和数据的sql语句如下,输出200,因为200是第二大的。请问sql语句如何写? DROP TABLE IF EXISTS `employee`; CREAT

福大大架构师每日一题

MySQL 数据库 福大大

GoFrame V2真香,我是Get到了高内聚低耦合的点,你呢?

王中阳Go

Go golang 高效工作 学习方法 11月月更

微服务连接:Subset子集划分算法

董哥的黑板报

微服务 云原生 连接 RPC 集群

FL Studio水果软件V21完整版本全面升级支持简体中文语言界面

茶色酒

FL Studio 水果FL Studio FL Studio 21

EasyExcel导出数据超过Excel单表上限解决方案

@下一站

大数据 技术 Excel Java core 11月月更

纯原生渲染模式下的uni-App框架通信实战

恒山其若陋兮

前端 11月月更

两阶段提交与三阶段提交

急需上岸的小谢

11月月更

[力扣] 剑指 Offer 第四天 - 在排序数组中查找数字

陈明勇

Go 数据结构与算法 力扣 11月月更

uni-app实战之单击菜单发布->H5的Promise 化在工程项目的实战演练项目心得

恒山其若陋兮

前端 11月月更

kubernetes部署metrics-server

程序员欣宸

Kubernetes k8s 11月月更

精选2022年大厂高频Java面试真题集锦(含答案),面试一路开挂

程序知音

java面试 大厂面试 java架构 后端技术 Java面试八股文

代码的衡量标准

Lemoon Can

写好代码 好代码的衡量标准

Ubuntu16(ROS_Kinetic)海康威视网络摄像机(单目)内参标定

Studying_swz

ubuntu 11月月更

OSPF路由协议三

初学者

网络 11月月更

cap理论和base理论

急需上岸的小谢

11月月更

网站与应用

我叫于豆豆吖.

11月月更

WX微信小程序对于响应的数据绑定和模块化生命周期的实战心得

恒山其若陋兮

前端开发 11月月更

有限状态机

芯动大师

Verilog 11月月更 Melay FSM

架构误区系列5:滥用分布式锁

agnostic

分布式锁

一篇文章彻底理解 HDFS 的安全模式

明哥的IT随笔

hadoop hdfs

Scrum Patterns:产品的自豪感(Product Pride)

Bruce Talk

Scrum 敏捷 Agile Scrum Patterns

网页基本代码

我叫于豆豆吖.

11月月更

python中封装和继承

乔乔

11月月更

基于 jenkins 视图对 jenkins job 进行分类

忙着长大#

jenkins

京东如何从OpenStack迁移至Kubernetes_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章