2019年技术盘点容器篇(一):听UCloud谈风生水起的K8S | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg


作者:刘晶晶


据相关调研机构出具的报告数据显示,目前应用容器市场规模将从2016年的 7.62亿美元增长到2020年的27亿美元。显而易见,引入容器所展现的巨大灵活性有效推动了其采用速率,使企业日益依赖该技术,与此同时容器技术也逐渐成⻓为虚拟机的实力替代品。对此,调研机构Forrester公司曾指出, 58%的开发商计划在未来一年内使用容器或正在计划使用容器。


总结来看,使用容器可以帮助企业提高效率、降低成本,甚至在安全性方面有更可靠的保障, 这些易于打包以及轻量级的组件可以与同一虚拟机中的其他组件一起运行;此外容器的大力采用也让开发者通过创建虚拟沙箱来更快、更好地工作,从而完成编写、管理和操作软件代 码,可以在不影响服务器或虚拟机(VM)上运行其他应用程序和系统的情况下就可完成此操作。


基于此,CSDN云计算特别策划了容器服务盘点系列文章,欲以CSDN中立技术社区专业、客观的角度,探讨当前云服务商眼中的容器服务并为开发者选择合适的容器服务提供相关建议,以帮助其实现容器技术的创新应用等。


为此,我们采访了数家提供容器服务的云服务厂商,本期程序员硬核评测,我们请来的是UCloud的容器服务的明星产品UK8S以及其实验室负责人叶理灯共同带来技术分享


K8S厉害不假,但需要走的路依旧很长


经过漫长的技术演进,带有相似规律的一点,从炉火纯青的容器技术到炙手可热的K8S,每次新技术的应运而生都预示着一场效率革命的来临,无论是开发、运维还是运营等诸多重要环节。在此背景下谈及企业对容器云平台的构建与创新,UCloud实验室负责人叶理灯可谓感同身受。


与很多企业相似,UCloud内部也需要通过一些技术创新来提升运维、软件迭代的速度以及质量保障,进而降低人力成本,故容器云平台的建设被提上日程。在建设平台之前,公司大部分业务都跑在虚拟机上,数以万计一点儿也不夸张,可想而知虚拟机的初始化部署以及日常运维操作都是很消耗人力的。他表示。


此外,据了解由于内部架构不统一,似乎每个业务部门都在做属于自己的高可用以及Auto Scaling来分别实施,这就存在了很大程度上的隐形成本;更重要的一点,大量的虚拟机利用率并不高带来很多资源浪费。

 

640?wx_fmt=png
UCloud实验室负责人  叶理灯

 

基于以上原因,叶理灯及其团队着手构建内部的容器云平台KUN,主要采用了K8S+Docker的技术实现,通过Docker来提高运维部署的效率以及环境的一致性,凭借K8S本身跨可用区的特性来保障跨可用区容灾和Auto Scaling能力,最大程度力求弹性、分布式的应用托管,进一步帮助开发者一站式轻松开发并部署应用程序。此外,UCloud容器云平台KUN底层基于Kubernetes,还提供了高可用、在线升级、自动扩缩、负载均衡、日志查看和资源监控等多种功能。


早在2013年,Docker横空出世,如果要说容器的历史那就更是久远了。细想当年Docker的风靡,叶理灯抽丝剥茧认为,是因为其让容器的使用门槛大大降低,其中更重要的成果Docker镜像,妥妥解决了PaaS应用打包标准化的问题。


以此类推,毕竟在Docker解决标准化打包之后,容器的编排就转而成为更加核心的问题之一,所以现今炙手可热的微服务以及容器的大规模落地都与K8S统一应用编排标准息息相关。有了标准,再从应用角度出发,云厂商逐渐学会了从整个生命周期去思考很多问题,例如如何让用户高效在云上落地应用等,带动了从应用的打包、上线、监控以及日志等诸多阶段来提供相应的工具和解决方案的风潮。


但不容忽视的一点,也是叶理灯一再强调的,K8S以容器技术为核心,以容器镜像为打包标准的特点意味着如果企业选择迁移到这个体系之下,就需要做到将软件容器化打包以及微服务改造,成本的关注不可缺少;此外,K8S作为运维和研发之间重要的纽带,企业的研发过程必然会伴随变化而紧随其后,所谓改变了习惯、增加了负担就是这个道理。起初无论是在研发还是运维方向都会出现偏重的情况,尽管这一点会伴随时间逐渐产生效率以及成本优势,但任重道远也是真现实。


另外除了业务改造的成本,K8S人才比较缺乏也是个问题。不同用户的情况本就不同,更不可能专门抽调人力运作这项技术。但换个角度来讲,技术人员数量不足,有了问题该如何解决?

在叶理灯看来,其实这就需要云厂商更进一步,除了帮助构建良性发展的K8S平台,还需要协同解决很多技术问题。每一个用户加入进来,我们都会拉一个群,针对技术方向进行互动。此外在落地方向,我们还想多做一些工作,关于人才以及K8S本身对用户架构的改造,帮助用户培育出K8S的运维人员以及制定关于架构迁移的解决方案。随着技术的发展,未来我们相信会有越来越多人理解K8S,其中云厂商所提供的更便利的产品与服务对其推广助力颇多。叶理灯接受采访时说道。


总体来说,这是一个新技术落地的问题,会涉及到用户、商业企业甚至是技术社区协同完成;再加上K8S本身也在发展,尤其是Serverless一旦成熟,对其落地就会产生很大的推动作用。所以无论是从UCloud自身的容器实践,还是技术发展的客观规律,容器革命尚未成功,K8S仍需努力!

 

对于明星产品UK8S,是有想法的!


谈及UCloud针对K8S的探索与创新,叶理灯认为UK8S服务不得不聊一聊。据阿晶了解,UK8S全称“UCloud Container Service for Kubernetes ”,是一项基于Kubernetes的容器管理服务,可以在上面部署、管理以及扩展私人化的容器应用,过程中无需关心Kubernetes集群自身的搭建及维护等运维工作。更重要的一点,UK8S完全兼容原生的Kubernetes API,并以UCloud私有网络为基础,并整合了ULBUDiskEIPVPC等云产品。


据悉在管理服务方面,UK8S支持完全的容器化和微服务化,可以确保所有管理服务全部运行在内部KUN平台上,基于KUNAPI对服务模块进行动态管理;一个集群对应生成一个Watcher,容易进行横向扩展;基于Watcher+Redis缓存的方式,保证用户在控制台获取集群信息的速度足够快,相当于用K8S管理K8S


托管方面,采用“UK8S+托管物理机的模式可以合理利用存量物理资源,且无需运维管理UK8S集群以及部署外部负载均衡,业务高峰可随时扩容集群,帮助用户有效利用存量IT资源。例如,Master节点部署在共有云上,Node节点分为公有云和托管云两部分,两个区的网络实现了互联互通等。


值得提及的是,在用户元年科技的探索实践中,利用UK8S可以有效解决了新服务的上线以及原有服务的更新过程繁杂、动态服务迁移操作难度大、线上服务健康检查复杂度高、服务之间的调用和发现配置工作多以及单个服务完全消耗云主机资源等诸多痛点。


聊完概念讲本质,叶理灯强调,UK8S服务并不是定制化的K8S,只是基于公有云为用户提供原生应用服务,不定制的理念主要取决于不违背K8S的初衷,即保持生命力、不被供应商绑定这样一个原则。


具体来说,在整合IaaS层面,在保证K8S的原生特性的前提下,基于开放体系所提供的插件机制完成二次开发。例如,在网络插件方面,UCloud选择基于自身IaaSVPC网络,让Pod可以和托管区和物理云区域打通,这一点可以被认为是IaaS能力在K8S产品上的体现,算是特色之一,但这项技术尝试并不影响K8S的原生性质以及开放属性等。此外,在应用层面,公有云厂商可以基于K8S提供一些周边功能来帮助用户提高效率,但这个尝试同样与提供一致性的K8S环境不矛盾。


阿晶认为,这种类型的定制其实每家容器厂商都需做到,因为毕竟K8S本身不是一个productio-ready的环境,需要使用者去适配网络、存储以及计算等。如果每个公有云厂商基于自身的IaaS来提供K8S产品,必然要开发插件,例如cloud provider CNICSI等。此类底层基于自身的IaaS平台定制,本质还是为了提高用户使用K8S的效率,让用户开箱即用。一句话总结,作为公有云厂商,最重要的容器方面工作在于根据云体系,在提供原生K8S的过程中,尽量做到减少在集群管理、资源整合方面的负担。


针对UK8S发展究竟有何路线甚至强规划?关于此叶理灯总结道,要让K8S管理更多的资源,例如多种类型的云主机、物理机甚至是异构资源以及GPU等。


另外在业务层面还会提供一些有关微服务的基础设施,将新技术产品化推进。一方面让用户的资源负担减轻,另一方面令应用层的架构缓解压力,更有助于落地;很关键的一点就是对Serverless K8S的热衷。

 

炙手可热的Serverless,需要怎么看?


如果说Kubernetes能够专注提升容器集群的运维管理效率,那么Serverless则从根源上摆脱服务器的运维难题,使计算资源作为服务而不是服务器的概念出现,从而将开发人员的效率最大化。有人说Serverless会带来容器轻量化的加剧,对不对呢?对此,阿晶特别求证了叶理灯,他表示并不完全如此。


其实Serverless最初萌生是针对计算,并等同于FaaS,有一个对标的产品被称为Lambda。总体而言,Serverless出现的动力是由于云计算的飞速发展带来了很多丰富的中间件,例如对象存储等。提出Serverless概念的人希望App的开发者不要集中所有精力写后端逻辑,而是选择直接把逻辑写在客户端,通过在前端组合云上的一些服务来完成业务逻辑,这样就没有管理后端资源的负担。他说。


但随着对技术认知度的提升,人们发现很多时候还是需要后端代码,所以这个趋势就逐渐演变成如果有后端代码就被拆分成函数托管在FaaS服务中,这样操作依然不需要管理服务器,也很便捷。


伴随概念进步,早在2017AWS提出了一个新概念,借此机会重新定义了Serverless。只要一个服务具备了四方面特性:免运维、按需付费、高可用和自动扩容,就被称为是Serverless服务,所以Serverless这个概念可能对应的是FaaS,也可能代表一种架构,当然也可能代表一种服务形态,例如Aurora。其实容器与Serverless的区别在于Serverlessno Container的,除了不关注Server,也看不到容器。两者面向不同场景,并不是互相替代的关系。


有关实践证明,FaaS具备的特点对一些延时敏感的情况并不合适,但类似IoT的有些场景是非常合适的,比方说设备管理以及图片处理等。总体来看,K8S接受的用户比FaaS的用户更多,因为K8S的面更广,覆盖的场景更多。但叶理灯也同时表达了目前Serverless使用并不普及的原因:不可忽视的一点,国内用户对新技术的接受程度还是比较低的水平,无论是习惯问题还是IT发展水平的差距;此外对国内用户来说将架构改为Serverless成本很高,而且改造的收益和规模相关。需要明确的是,FaaS本身不是一个独立能起作用的产品,需要开放事件源,通过事件去触发函数执行。只有产品体系开放足够多的事件源,FaaS才能渗透到整个平台层面,才能覆盖更多场景,而国内的厂商还没有做到这一点。


但随着API-Gateway方式调用和体系开放事件源越来越丰富,覆盖场景越来越多,相信FaaS会逐步落地。背后的动力还有关于FaaS按需付费和免运维的方式,能有效节省客户成本和提高效率。


谈及未来在容器方向的关注点,虚拟化容器被列为UCloud容器研发的首选。叶理灯认为,如今用户使用K8S还存在资源管理的负担,不能完全面向应用来运维,所以解决这个问题就要提供一个海量集群去跑通客户应用,这就造成了多个客户应用可能跑在同一个节点上。如此来看,考虑到Docker本身的隔离问题,就需要类似虚拟化容器的计算去完成隔离,同时又渴望具有Docker本身轻量级快速启动的效率,虚拟化容器还是比较符合此项需求的。

 

另附技术小贴士:

 

据了解,基于Kubernetes自动化部署、弹性伸缩和容器化等特性,UCloud针对内部研发人员和外部用户分别构建了容器云平台。


其中UCloud内部容器云平台(简称KUN)的底层是基于Kubernetes搭建的,主要的实现方法之一是K8S+Docker,通过Docker提高运维部署效率和运维环境的一致性,通过K8S实现跨可用区容灾和AutoScaling能力,从而实现高可用、在线升级、自动扩缩、负载均衡、日志查看、资源监控等多种功能。

 

640?wx_fmt=png
内部云平台的架构图

 

叶理灯提到,在构建内部容器云平台KUN的过程中要解决四个主要问题,分别是:


1. 多租户隔离的问题,保证业务之间互相不受干扰

2. IPv6的问题,如何保证跟IPv4网络兼容

3. 如何用Operator来管理有状态的服务

4. 监控问题

 

对应的解决方案是:


基于RBAC来实现账号管理隔离,选择Token认证方式,通过服务账号SAService Account)模拟普通用户User,所有模拟账号的SA放置同⼀个NS,进行统⼀管理;定制权限组ClusterRole,通过授予模拟账号SA的不同权限组,来控制不同UserNS中的不同权限。抽象Project对象给User使用,Project与每个集群的NS⼀⼀对应,User在每个集群上都有对应模拟账号用于NS授权。


针对IPv6的问题,接入6to4 TunnelBridge网桥,核心基础网络无需修改,采用underlay,实现Pod与集群外部互通。Service全网可访问,ClusterIPK8S集群外部可以直接访问,分配一个Ipv4地址,在Kubernetes集群下的所有介入交换机上宣告,该IPv4地址对应的6to4地址作为该Kubernetes集群ServiceIP地址段。Pod返回的包,会先回给Service Gatevay,由于做了SNAT,基于连接追踪(conntrack),再返回给请求的客户端。


KUN中使用Operator,为用户提供可视化 Web 操作页面,简化对各类自定义资源的管理操作。用户不需要详细理解具体的 CRD 结构,就可以在Web 页面上快速创建⼀个 Redis 集群,并且可以看到集群⼀步步创建的过程。同时还可以对集群进行配置更新、删除等操作。

监控系统方案基于Prometheus构建,Prometheus部署于K8S集群中,使用HostPath存储数据、Metrics采集,使用Alert Manager 聚合报警,调用 Monitor Manager 提供的 Web Hook;自研 Monitor Manager:使用Grafana 实现 Web 可视化;


UK8S是基于Kubernetes的对外部用户的容器管理服务,用户可以在UK8S上部署、管理、扩展容器化应用,而无需关心Kubernetes集群自身的搭建及维护等运维类工作。


除此之外,UK8S还完全兼容原生的KubernetesAPI、以UCloud私有网络为基础,并整合了ULBUDiskEIPVPC等云产品。


UK8S集群网络通过自研CNI插件与VPC网络深度集成、利用Secondary IP API实现IP管理、无overlay性能与云主机一致、Pod网络可与物理云托管云直接互通。

 

640?wx_fmt=png

 

叶理灯总结了UK8S管理服务的特点,例如:


A、完全的容器化和微服务化。

B、所有管理服务全部运行在K8S上。

C、基于K8SAPI对服务模块进行动态管理。

D、一个集群对应生成一个Watcher,容易进行横向扩展。

E、基于Watcher+Redis缓存的方式,保证用户在控制台获取集群信息的速度足够快。

 

640?wx_fmt=png


640?wx_fmt=jpeg


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 搞不懂SDN?那是因为你没看这个小故事…

  • 不让华为收专利费?美议员提案“秀下限”

  • 华为最强自研 NPU 问世,麒麟 810 “抛弃”寒武纪

  • 北邮通信博士万字长文,带你秒懂 4G/5G 区别!

  • LinkedIn最新报告: 区块链成职位需求增长最快领域, 这些地区对区块链人才渴求度最高……

  • 中文NLP的分词真有必要吗?李纪为团队四项任务评测一探究竟 | ACL 2019

  • 6月技术福利限时免费领


    真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 整合ActiveMQ_企业实战

文章目录1. 新建Springboot工程2. 引入maven依赖3. ActiveMq配置类4. MQ生产者5. MQ 点对点消费者6. MQ 发布点阅消费者A7. MQ 发布点阅消费者B8. 统一测试类1. 新建Springboot工程 2. 引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <p…

Docker精华问答 |为什么巨头会支持Docker?

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展。今天&#xff0c;就让我们来看看关于Docker的深度…

Unable to process Jar entry [module-info.class] from Jar

Unable to process Jar entry [module-info.class] from Jar [jar:file:/J:/rep/org/projectlombok/lombok/1.18.8/lombok-1.18.8.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 解决方案&…

linux的批处理进程,巧用linux-top的批处理模式

IT技术学习&#xff1a;一种是采用循序渐进的系统式学习&#xff1b;一种是采用“投机取巧”的碎片式学习。我这个人比较赖&#xff0c;也没有那些大牛执着的精神和水平&#xff0c;所以只能和大家分享后者命令简述top命令-是UNIN&&LINUX系统自带的系统管理工具。可以实…

最新突破!科学家研发出世界首款精神控制手臂机器人;近日Kubernetes 1.15 正式发布;雷军公布小米手机产品线布局……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 腾讯微信电子健康卡整体解决…

java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded

这个错误主要是因为spring的相关jar的版本号不一致导致的&#xff0c;所以用maven管理会好很多

一文读懂云计算和PAYG“现付现用”模型

戳蓝字“CSDN云计算”关注我们哦&#xff01;译者 | 风车云马或许您对云计算听的比较多&#xff0c;但是对于“现付现用”(Pay-As-You-Go,PAYG)模型是什么还不十分了解。简单地说&#xff0c;PAYG是一种“实用”计算模型&#xff0c;它允许用户根据使用的机器小时数或消耗的资源…

linux用户权限简介,Linux用户及权限管理

【文件管理、管道、用户及组管理、用户及权限管理】\用户及组管理用户与组管理Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。用户的账号一方…

Hadoop精华问答 | hadoop能干什么?

Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色&#xff0c;今天&#xff0c;就让我们看看关于Storm的精华问答吧。1Q&#xff1a;hadoop是什么A&#xff1a;Hadoop被公认是一套行业大数据标准开源软件&#xff0c…

linux xguest用户,在/etc/passwd中得到普通用户列表

/etc/passwd文件用来保存系统中当前所有的用户信息&#xff0c;该文件对所有用户都可见。在该文件中&#xff0c;每行信息代表一个用户。每个用户的信息由7部分组成&#xff1a;用户名&#xff1a;加密后的用户密码&#xff1a;用户ID(UID)&#xff1a;用户所在组ID(GID)&#…

实战02_SSM整合ActiveMQ支持多种类型消息

接上一篇&#xff1a;企业实战01_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100557400 ActiveMQ支持消息类型如下&#xff1a; 1、StreamMessage java原始值数据流 2、MapMessage 键值对 3、TextMessage 字符串 4、ObjectMessag…

华为首超苹果,iPhone 风光已不再?百度资讯搜索来源调整;自动驾驶激光雷达厂商Velodyne筹备上市;...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 三星Galaxy A90更多细节曝光…

千字谏言!Python入门:这两点绝对不能偷懒!否则工作后必后悔

作为程序员&#xff0c;你有没有遇到过这样的领导&#xff1a;“别人还没走&#xff0c;你先走了不合适吧。”“不能确定功劳&#xff0c;总得有苦劳吧&#xff01;你看别人9点谁走了&#xff1f;”说到996&#xff0c;这很有可能是诱因之一。所以很多程序员会在学习了Java、C的…

​听说,私有云也出新一代了?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 孙浩峰自从私有云的概念出现以来&#xff0c;由于其能够较好的解决传统IT 架构、IT 流程的诸如缺乏弹性、IT 架构难以支撑多变的业务环境&#xff0c;交付流程效率低难以及时响应业务需求等诸多问题&#xff0c;获得了蓬勃发…

腾讯云一口气发布四大新品,云原生时代将正式开启

6月25日&#xff0c;在上海召开的KubeCon 2019大会上&#xff0c;腾讯云重磅发布多款适用于企业不同场景的云原生技术产品&#xff0c;包括企业级容器服务平台TKE、容器服务网格、Serverless 2.0、一站式DevOps四大产品。这四款云原生技术产品的发布将助力国内数百万企业“上云…

linux下远程登录如何退出,Ubuntu 中rdesktop如何切换和退出远程桌面

Ubuntu 中rdesktop如何切换和退出远程桌面原文如下&#xff1a;I use RDP a lot and having to disconnect from my session to switch to another window is not an option. The problem lies somewhere with compiz. What supposed to happen when you hit ctrlaltenter is …

K8S精华问答 | K8S和Openstack发展方向是怎样的?

kubernetes&#xff0c;简称K8S&#xff0c;是用8代替8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kubernetes提供了应…

Linux进程核心代码怎么查看,GCOV查看arm-linux代码覆盖率

一、关于gcov工具gcov伴随gcc发布。gcc编译加入-fprofile-arcs -ftest-coverage参数生成二进制程序&#xff0c;执行测试用例生成代码覆盖率信息。1、如何使用gcov用GCC编译的时候加上-fprofile-arcs -ftest-coverage选项&#xff0c;链接的时候也加上。fprofile-arcs参数使gcc…

对于华为,英特尔与微软表示继续提供支持;亚马逊亲证云计算服务出现宕机;中国移动5G套餐曝光,每月都含200G流量……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 小米CC全新系列小王子&小…

Linux 环境 zookeeper集群安装、配置、验证

架构说明&#xff1a; Dubbo 建议使用 Zookeeper 作为服务的注册中心。Zookeeper 集群中只要有过半的节点是正常的情况下&#xff0c;那么整个集群对外就是可用的。正是基于这个特性&#xff0c; 要将 ZK 集群的节点数量要为奇数&#xff08;2n1&#xff1a; 如 3、 5、 7 个节…