[转帖]浙江移动容器云在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 ...
随机推荐
- DataGrid控件的列
四种列(局限性较大)https://www.cnblogs.com/lonelyxmas/p/9442604.html 更强大的模板列(如控件居中等)https://www.cnblogs.com/l ...
- 【Python之路】特别篇--Python切片
字符串切片操作 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割. 注意: 数是可选的,而冒号是必须的. consequence[start:end:step] 切片操作符中的 ...
- VS2015 注释英文
在VS2015中,框架.NET4.5的智能提示是英文版本的,其实修改的方法很简单,手动改也十分方面,但是考虑到有时候更新后又会变成英文,其实无非就是里面的汉化包是英文版的而已.所以还是留个笔记,方便进 ...
- 玩转git和github
1.概念 git---工具,版本控制 github----网站,社交平台,开源项目,远程仓库 2.下载 msysgit是Windows版的Git,从http://msysgit.github.io/下 ...
- 识别C++编译器编译标准
cout << __cplusplus<<endl; C++03:__cplusplus = 199711L C++11:__cplusplus = 201103L
- okHttp3 源码分析
一, 前言 在上一篇博客OkHttp3 使用详解里,我们已经介绍了 OkHttp 发送同步请求和异步请求的基本使用方法. OkHttp 提交网络请求需要经过这样四个步骤: 初始化 OkHttpClie ...
- 在.slurm文件中激活Anaconda环境
超算中心使用slurm作为集群调度.原始slurm脚本如下: source activate tensorflow-gpu python neural_style.py --content conte ...
- 使用data_flow_ops构造batch数据集
1. tf.unstack(number, axis=0) 表示对数据进行拆分 import tensorflow as tf import numpy as np data = np.array( ...
- 一张图搞懂Ajax原理
本文整理在,我的github上.欢迎Star. 原理 说起ajax,就不得不说他背后的核心对象XMLHttpRequest,而说到XMLHttpRequest我觉得,从它的readyState状态说起 ...
- Django框架 选项卡加active类的方案
------html部分----- <div class="left-menu"> <div class="menu-body"> &l ...