[转帖]浙江移动容器云在ARM服务器的实践
浙江移动容器云在ARM服务器的实践
国产ARM服务器上面跑K8S集群.. 貌似浪潮信息也有 龙芯的K8S集群..
一、背 景
浙江移动容器云自14年开始至今,已相继完成了双平面容灾、双引擎兼容等关键能力建设,目前已承载并稳定运行包括核心业务在内的350多套系统,容器数量超过30000个。
服务器是数据中心的重要组成部分。为探索数据中心IT架构多样性,浙江移动容器云于近期开展基于ARM服务器集群的异构双平面能力建设实践,为ARM服务器成功落地数据中心提供有力支撑。
二、ARM与X86的区别
2.1、技术模式
X86是英特尔主导开发的一种微处理器体系结构的泛称,使用CISC(复杂指令集计算机)架构。而ARM(全称为:Advanced RISC Machines)架构采用了RISC(精简指令集计算机)架构,由ARM公司主导。
2.2、产业模式
与英特尔直接出售芯片成品不同,ARM只负责最初的芯片设计部分,合伙伙伴通过ARM授权的IP(Intellectual Property,知识产权) 许可证进行芯片制造和封装。
2.3、软件兼容性
因使用了不同指令集,x86服务器和ARM服务器在硬件、操作系统上存在较大差异。ARM服务器芯片生态相较于x86还存在一定差距。
三、ARM的优势
3.1、自主可控
由于ARM的商业模式是IP售卖,所以可从根本上规避x86隐藏的专利与供应链风险。芯片厂商一次性买断某个版本即可获得永久性授权。
3.2、性能
云时代,企业IT架构对高并发、多线程和任务单一的计算模式大幅增加,得益于RISC流水线指令集,ARM服务器的指令执行效率比x86服务器更高,在一些任务相对固定的应用场合其优势可以得到充分发挥。
3.3、功耗与成本
ARM架构的服务器大幅精简指令集,相较于x86服务器,不仅使处理器得到简化,也使处理器体积更小、低耗更低。低功耗带来的直接效益是低成本。更加贴合企业云化大规模计算的需求。
四、容器云双平面兼容ARM服务器
浙江移动在IT数字化转型过程中着力建设的容器云平台经过多年发展,已形成了兼容异构容器编排引擎、具备双平面容灾能力的先进弹性计算服务架构。
■ 异构双引擎架构:平台同时兼容Mesos和Kubernetes容器编排引擎,并对租户提供统一无差异的容器使用体验。

■ 双平面容灾架构:平台在每个可用区域建立独立的、完整的集群。租户可通过容器云管理平台对应用实现在不同区域的发布、启停等统一维护操作。通过双平面调度能力,应用可快速在不同集群完成实例部署。

双平面的架构特性为容器云平台快速兼容ARM架构服务器提供了可能。容器云平台可在不中断服务的前提下,在生产环境新增ARM服务器集群平面并实现业务承载的服务状态。
4.1、运行平面扩展——ARM服务器集成
基于双平面架构,有以下两种思路可实现容器云集群对ARM服务器集群的快速集成:
■ 新增一个ARM平面
管理平台具备统一管理“多”运行平面的能力,因此可在不影响现有x86运行平面承载业务的基础上增加一个ARM运行平面,借助容器云管理平台的快速扩容能力实现业务集群的扩容。
■ “替换”一个x86平面
利用双平面架构的容灾能力,用ARM运行平面替换一个x86运行平面,实现异构双平面的运行架构

4.2、调度引擎集成
目前容器云平台向下可对接Mesos和K8S两种开源调度引擎,两种引擎均已支持在ARM服务器集群进行部署。本次实践选择Mesos双平面完成。

4.3、基础镜像适配
基础镜像中包含了应用运行的依赖环境。由于x86和ARM的指令集差异,需要重新在ARM服务器上通过Docker重新构建镜像。

4.4、异构双平面验证实践
本次选择方案二对容器云兼容ARM服务器集群进行验证。为充分测试ARM架构下服务的可用性,本次实践选择了某核心服务系统的应用,其日均前端请求速率量最高达200+次/秒。
应用集群总体规模保持不变,通过调整软、硬负载可实现集群切换的功能。在ARM服务器集群上线前,暂停A平面软负载;ARM平面准备就绪后,重启A平面软负载,并在A平面启动应用容器集群,实现两个集群的并行运行。

4.5、灾备切换
在异构双平面运行阶段,容器云提供了完整的灾备能力。当某个运行平面群异常时,可暂停运行平面的软负载,利用容器云平台的快速扩容能力在另一运行平面将实例数扩容至原集群2倍,即可实现容灾。

五、实践效果异构双平面运行效果如下图,在高峰期,业务在ARM与x86平面的实例响应基本一致,平台对ARM服务器的兼容性和可用性得到验证!
六、实践总结华为ARM服务器在浙江移动的成功试行,一方面再次证实浙江移动容器云平台双平面能力带来的灵活、可拓展性,另一方面也表明浙江移动容器云已具备对ARM服务器的平滑兼容能力,将助力浙江移动数据中心实现完全自主可控的基础设施建设。相信未来不久的时间内,国产ARM架构服务器一定会有更进一步的发展。
[转帖]浙江移动容器云在ARM服务器的实践的更多相关文章
- [转帖]华为Hi 1620 等ARM 服务器版本CPU信息.
华为ARM服务器恐依赖党政输血续命 一旦制裁立马休克 http://www.sohu.com/a/240833070_99934330 几年前,ARM服务器被业界炒的火热,AMD.高通.Marvell ...
- [转帖]华为鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例
鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例 https://m.ithome.com/html/444828.htm 2019-09-12 15:25IT之家 (阿迷) 今年一月份 ...
- [转帖]一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系
一文看懂web服务器.应用服务器.web容器.反向代理服务器区别与联系 https://www.cnblogs.com/vipyoumay/p/7455431.html 我们知道,不同肤色的人外貌差别 ...
- [转帖]容器云之K8s自动化安装方式的选择
容器云之K8s自动化安装方式的选择 时间 2016-12-05 19:10:53 极客头条 原文 http://geek.csdn.net/news/detail/127426 主题 Kubern ...
- 【容器云】传统金融企业的 Docker 实践
基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安而言,则是基于 Docker 的 Padis 平台.所谓 Padis,全称是 PingAn Distribution ...
- 【原创译文】基于Docker和Rancher的超融合容器云架构
基于Docker和Rancher的超融合容器云架构 ---来自Rancher和Redapt 超融合架构在现代数据中心是一项巨大的变革.Nutanix公司发明了超融合架构理论,自从我听说他们的“iPho ...
- 容器云技术选择之kubernetes和swarm对比
swarm和k8s本质都是容器编排服务.它们都能把底层的宿主机抽象化,然后将应用从以构建好的镜像开始,最终以docker的方式部署到宿主机上. 应该选择哪种方案作为我们的容器云服务呢? 我觉得k8 ...
- 容器化 — 基于Docker技术容器云
导读:本文介绍了基于Docker技术的企业级应用容器平台,从云的定义.云服务分类,到用友云PaaS基础平台.平台总体架构.架构预览.部署架构.平台核心价值和核心竞争力,阐述PaaS基础平台成为广大传统 ...
- Redis之父表示ARM服务器没戏!
ARM表示Neoverse N1平台和E1 CPU即将发布,Neoverse N1和E1采用7nm制程,并且为服务器和通信设备增加重要提升,拥有高可扩展性.高处理量以及高性能,将分别在2020年和20 ...
随机推荐
- PSFTP使用简单教程
psftp是putty工具下的一个sftp工具.SFTP(Secure File Transfer Protocol)安全文件传输协议,SFTP是SSH的一部分,是一种传输档案至 Blogger 伺服 ...
- SSM跨域配置
1.后台跨域要引用两个jar包(cors-filter-1.7.jar.java-property-utils-1.9.jar) 提供下载地址: 链接: https://pan.baidu.com/s ...
- Word:英文从“单词”中间断行
造冰箱的大熊猫@cnblogs 2019/2/1 在Word输入一个比较长的英文内容,比如“D:/software/myapp/bulids/FieldTest/Final_0533/PViewEdi ...
- 51 Nod 1163 最高的奖励
1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成 ...
- 日照学习提高班day3测试
A 思路: 一看到'#''.'什么的就想到搜索怪我怪我... 这道题勉强说是搜索别打我qwq 1)因为不重复,所以首先要判断是否%5==0,若不满足,直接输出NO 2)弄个vis数组记录是否被搜过,如 ...
- Function和Object 应该知道的
javascript有5种基础的内建对象(Fundamental Objects),Object.Function.Error.Symbol.Boolean,而Object/Function尤为特殊, ...
- C++入门经典-例7.7-对象与复制,菌类的繁殖
1:当函数以相应的类作为形参列表时,对象可以作为函数的参数传入.在学习函数时,我们曾提过,值传递先复制实参产生副本.那么对象的副本是怎样的呢? 复制构造函数是指类的对象被复制时所调用的函数.下面两种情 ...
- TCP被动打开 之 第三次握手-接收ACK
假定客户端主动打开,发送syn包到服务器,服务器创建连接请求控制块加入到队列,进入TCP_NEW_SYN_RECV 状态,发送syn+ack给客户端,并启动定时器,等待客户端回复最后一个握手ack: ...
- JS基础_变量提升和函数提升
1.在函数中,不使用var声明的变量都会变为全局变量 function fun(){ d=10; //window.d=10; }; console.log(10);//10 2.定义形参就相当于在函 ...
- Python编程中NotImplementedError的使用
Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制.在面向对象编程中,可以先预留一个方法接口不实现,在其子类中实现.如果要求其子类一定要实现,不实现的时候会导致问题 ...