在这个转件即将吞噬一切的时代,有人预测未来所有企业都将是软件企业。事实上,现在的应用程序已经成为了企业业务的核心支撑,因此企业应用的开发、部署速度也决定着企业的竞争力。这种情况下,容器技术的诞生给企业提供了一条应用部署的快捷路径,但是技术的不断深入使用,也给企业造成了一定的困扰。对容器技术的使用,青云在其QingCloud Insight 2017大会进行讲解。
容器支持选型:企业是向左还是向右?
确实,企业已经对于容器的熟悉度很深入了,随着现在的容器各种各样,而且容器的外延也不断扩展,使得用户对容器的选型时感到困惑。对于这一问题,在QingCloud Insight 2017大会上青云QingCloud容器平台研发负责人王渊命从两个角度提供了建议。
一方面从资源隔离的角度。青云QingCloud将容器和虚拟机比较,从性能看,容器隔离成本比虚拟机低;另一方面,容器已经变成应用标准化的一种方式,无论是用容器镜像做应用分发,还是运行时(runtime)进程标准化。因此,企业选型时要从自己最关心地方考虑,当你关心标准化时,那就选择容器,这无须犹豫。
基于这两个角度,青云QingCloud提供了两个解决方案。一容器主机,以容器的方式运行虚拟机镜像,提供一套完整的操作系统,确保有类似虚拟机和IaaS的使用体验。王渊命说,这不需要太多的容器专业知识,就能享受容器本身带来的性能上的提升。第二,青云QingCloud的AppCenter支持Docker镜像,也就是用通过编排文件把多个镜像编排在一起,就可以放在AppCenter中作为一个整体应用交付给客户。另外,除了容器,青云QingCloud还提供了编排调度系统,这一容器编排调度系统,了可以作为应用放在AppCenter 之上。
青云QingCloud Kubernetes:五个方面改进容器编排
青云 选择Kubernetes的原因是什么?这应该是不少人的疑问,毕竟市场上有那么的选择。王渊命是这样解答的:
一是Kubernetes本身部署困难。这不仅仅是Kubernetes本身的复杂性带来的困难,还因为由于一些原因,有些服务在国内是无法访问,导致Kubernetes的访问不是很顺畅。二是微服务的需求。微服务和容器是当前服务架构领域最热门的技术。它的敏捷交付、可伸缩等优势为企业所喜爱,但微服务架构也给企业带来的不小的挑战——如此之多的服务,要如何管理?人工编排的方式已经过法管理掌管不断增多的微服务。“如果你能管理,说明你的微服务不够多,拆分的还不够细、或是规模还不够大,”王渊命幽默地说到。在这种情况下,Kubernetes本身提供的对服务规范的定义、Deployment的滚动升级,以及DNS服务发现的支持,都非常好的支持了微服务。
这是青云QingCloud选择Kubernetes的两个主要原因。除此之外,Kubernetes还可以与云互补,IaaS更关注于资源层面,而Kubernetes更关注应用层面,两者的结合更是一种互补。为了让企业更加容易地享受到Kubernete的优势,青云QingCloud从改进了Kubernetes。
- 网络:Kubernetes本身没有提供网络解决方案,它将这一问题传递给了云平台或社区解决。Docker为了解决应用的网络端口冲突,给每个容器分配了一个IP。当我们的容器只和本主机容器互通时,这没有问题,但当我们想通过调度系统把多台主机的容器连接在一起,就会遇到了网络问题。这时,我们需要有一层SDN(软件定义网络)来解决问题。尽管大多开源容器网络的解决方案,但都是比较简易的SDN。而且当我们把这层网络方案部署到云时会发现,云之上已经有了一层SDN。这样在SDN上再做一SDN,性能损耗将会非常大。而青云QingCloud的想法是,直接穿透IaaS上的SDN供给容器使用。这就是青云的容器网络方案——SDN Passthrough,让容器可以和虚拟主机共享一层网络。
- 存储:当在容器中保存数据,不少人就会遇到存储的问题。使用Docker存储文件时,我们会映射主机目录到Docker容器中,然后把文件存在主机目录上。但在容器上面架一层调度系统后,调度系统会有各种不明的原因将容器迁移到其他主机上,而这种存储方案也无法支持迁移。因此,Kubernetes推出了自己的PresistentVolume标准。有些人可能会说使用NFS、Ceph等分布式存储系统,但他们对网络依赖严重,稳定性和性能较差。青云QingCloud把IaaS的存储硬盘映射成Kubernetes的持久化存储卷,当容器在主机之间迁移时,存储卷也可以随着迁移,解决了容器状态数据存储迁移的问题。现在,它只支持性能盘和容量盘,未来将支持新发布的NeonSAN 分布式存储系统。
- 负载均衡:当我们服务暴露给最终用户使用时,又会遇到公网IP的问题,但这是Kubernetes本身无法管理的。基于此,Kubernetes 提供了CloudProvider机制,也是把这部分的实现让渡给云平台——云平厂商开发相关个插件,与自身的云平台公网IP和负载均衡器进行关联。应用在Services里只需要声明需要一个Load Balancer,这时调度系统会自动创建IaaS负载均衡器,并和Service关联。对此,青云QingCloud提供公网和私网两种负载均衡器。因为不是所有的服务都需要暴露在公网上,有一些内部服务,给Kubernetes集群外应用调用,那么可使用私网负载均衡器。
- 弹性伸缩:创建集群时,我们不可能直接申请最终需要的规模,所以集群规模需要随着业务的增长或流量的变化而伸缩。青云QingCloud 同时支持纵向和横向等多种伸缩方案。
- 集成服务:Kubernetes本身提供了一种扩展机制,可以把一些服务内置在其中。青云QingCloud目前主要内置了DNS,用于微服务的应用发现。如果没有这种DNS服务发现,应用配置文件会跟具体资源相关联,比如数据库IP,当应用从不同环境迁移时,比如从测试环境迁移到生产环境,配置就会是异构的。而有DNS机制,配置文件就可以完全保持一致。另外,Kubernetes 本身提供了一个Dashboard,而且日志与监控服务,一体化地收集、存储、展示日志监控数据 ,这些与应用无关。
结语:
“以后我们可以在Kubernetes中集成更多的服务,从而降低用户研发和运维应用的成本,用户只需要关注自己的核心业务逻辑,”王渊命在大会上承诺说,“虽然当前Kubernetes直接支持的应用还比较少,但随着它的逐渐成熟,以后会越来越多。我们也会在AppCenter上支持Kubernetes之上的应用。”
至于,还会添加什么样的功能,什么时候添加,笔者想这还要从企业的业务需求出发。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
探索多云Kubernetes部署选项
在部署架构方面,Kubernetes是一种灵活的编排工具,它可以运行在本地、公共云和多个公共云。 多云Kube […]
-
VMware的托管Kubernetes服务加入拥挤的竞争
近日VMware公司将托管Kubernetes添加到其日益扩大的云原生服务中,这让该公司进一步脱离其内部部署传 […]
-
为什么Kubernetes正成为多云的关键推动因素?
在过去几年,企业逐渐转向所谓的“云原生”技术来构建新应用和新服务,这使得容器一直备受关注。 在早期阶段,大家的 […]
-
企业数字化转型:容器需纳入到发展路线图
容器技术能够帮助企业尝试实现数字化转型,但是这样做也不是无懈可击的。专家Christopher Tozzi在这里与我们分享了需要询问的正确问题。