Kubernetes时代的云容器平台:各家云产品模式逐渐丰富

发布于: 2020 年 05 月 19 日
Kubernetes时代的云容器平台:各家云产品模式逐渐丰富

摘要

Kubernetes出现后,在云上面出现了一种产品“容器平台”,它打破了既有IaaS、PaaS的边界,各种容器平台在商业模式上也略有区别。本文介绍Kubernetes容器平台的三种模式,以及华为云、金山云、腾讯云、阿里云的容器平台产品。

Kubernetes容器平台的三种模式

Kubernetes时代的容器平台,不能用传统的IaaS、PaaS的边界去划分。这是由于Kubernetes本身是一个容器编排引擎,它自身由多个部分组成,因此不同的Kubernetes交付方式、不同的客户控制域,就形成了不同的商业模式。

Kubernetes容器平台的三种模式的情况如下所示:

  • 模式1:客户买IaaS,Kubernetes作为软件附送;

  • 模式2:托管Kubernetes,客户可以管Kubernetes的Node、Pod;

  • 模式3:客户通过上层的控制台操作Kubernetes的环境;

 

从客户的角度,几种模式要求的技术并不一样:

  • 模式1:客户自己完全掌控一个Kubernetes的运作,云服务提供商只是提供一个软件包;

  • 模式2:Kubernetes的Master节点由云服务提供商管的,客户原则上只管Node或者Pod,相应的可操作内容也受到一定的限制;

  • 模式3:客户不需要了解Kubernetes,只需要通过控制台做一些简单应用,这种应用大部分是无状态应用;

从云服务提供商的角度,几种模式在计费上面有核心的差别:

  • 模式1:收费就是IaaS的原则,云主机为主,客户用到存储、网络的另算,Kubernetes本身是送的;

  • 模式2:由于Master节点在云服务提供商手里面,可为客户提供弹性的增值服务,让客户可以享受一定程度的成本节省;

  • 模式3:由于客户已经看不到Kubernetes的运作,因此云服务提供商可能有另外的计费系统,而且可能支持多租户在同一个资源池当中。

三种模式本身也有一些变数,各个云服务提供商所支持的也不相同。

模式3的本质发展方向是让客户从底层的云技术中解脱出来,比如可以”不懂Kubernetes“。这个模式如果在继续向前发展,甚至可以发展成直接向客户提供Serverless中的函数引擎。

华为云、金山云、腾讯云、阿里云的Kubernetes容器平台

华为云、金山云、腾讯云、阿里云的容器平台有相似性,也有不同的地方。本部分介绍的仅仅是Kubernetes容器平台,纯Docker的容器平台不是主流,也不在讨论范围之内。

几家云各自的Kubernetes容器平台的名字分别是:

  • 华为云:云容器引擎(Cloud Container Engine,CCE)

  • 金山云:金山云容器引擎(Kingsoft Container Engine,KCE)

  • 腾讯云:腾讯云容器服务(Tencent Kubernetes Engine ,TKE)

  • 阿里云:阿里容器服务(Alibaba Cloud Container Service for Kubernetes,ACK)

简单概要来说,华为云、金山云主要提供的是模式1;腾讯云提供的是模式1、模式2;阿里云提供的是模式1、模式2、模式3。这里面划分也不是完全泾渭分明,属于大体上面的归类。

华为云容器引擎

(华为)云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。

https://support.huaweicloud.com/productdesc-cce/cce_productdesc_0001.html

金山云容器引擎

金山云容器引擎(Kingsoft Container Engine,KCE)基于原生的Kubernetes进行开发和适配,整合了金山云虚拟化、网络、存储等能力,为客户提供高可靠、高性能、高度可扩展的容器管理服务。支持资源调度、服务发现、灰度升级,弹性伸缩和服务编排等功能特性,方便用户在金山云容器平台轻松部署、运维容器化的应用。

https://docs.ksyun.com/documents/2657

腾讯云容器服务

腾讯云容器服务(Tencent Kubernetes Engine ,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。容器服务提供免费使用,涉及的其他云产品另外单独计费。

https://cloud.tencent.com/document/product/457

阿里容器服务

(阿里)容器服务ACK(Alibaba Cloud Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。容器服务ACK简化集群的搭建和扩容等运维工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的Kubernetes容器化应用运行环境。

https://help.aliyun.com/document_detail/86737.html?spm=5176.181001.1396228.btn2cs.461860dfKxqboI

几个Kubernetes容器平台的特点

几个云上面Kubernetes容器平台相似性多于差异,大体符合下面几个原则:

  • Kubernetes与业界兼容,跟随云原生的发展;

  • Kubernetes运行于自家的云服务器之上,作为增值服务;

  • 产品优势大同小异,在Kubernetes既有技术优势基础上,加上自身云硬件的特性;

  • 文档结构很类似:产品介绍、计费模式、使用流程、最佳实践等;

  • 除了Kubernetes的API,往往还有自己的API负责集群管理等工作

本段的介绍,基本是一个从简单到复杂的过程。

华为云容器引擎CCE

华为云容器引擎CCE的模式非常清晰,这是一个在华为云服务上面运行的东西, 容器引擎本身是一个软件,它真正用的其他云服务则是如右边红框里面所示。

例如,使用CCE有一些依赖,华为云弹性云服务器ECS是收费的,初次之外还有网络服务、存储服务、配套服务等,用了CCE也会用华为云的其他产品。

华为云容器引擎CCE的操作过程也比较简单:申请权限、创建集群、创建应用、查看状态。

后面创建应用的工作,则都是Kubernetes的基本操作。显然在华为的模式中,客户对于Kubernetes集群有着控制权。

在上面操作中,创建Kubernetes混合集群、创建基于裸金属集群属于云服务器层面的差别,对于CCE的运行有性能影响,而无功能影响。

华为云CCE本身不收费,主要靠其他云服务收费。在这种模式中,华为CCE也就是一个运行于华为IaaS上面的附赠软件。

金山云容器引擎KCE

金山云容器引擎KCE自身的定位是PaaS,并且运行于金山的IaaS之上。

金山云的CCE也是按照几个标准的过程创建,创建完成之后,直接可以用Kubernetes的标准操作来处理,

金山云CCE暂不收取服务本身费用,客户仅需要为使用的云资源付费。显然,金山云的模式也是将CCE当成附赠的软件来处理。

腾讯云容器服务TKE、EKS

腾讯云的容器服务分成两种模式:TKE、EKS,它们之间区别其实也就是客户专用Kubernetes、托管Kubernetes的区别。

下面是腾讯云容器服务的申请过程——这个过程在各家云都是大同小异。

EKS代表弹性容器服务,按照腾讯云的介绍:弹性集群内运行的工作负载采用后付费的按量计费模式,费用根据实际配置的资源量按使用时间计算。

下面表格是ETK、EKS之间的差别。

ETK、EKS二者的本质差别是计费模式,由于EKS实现了弹性和托管,因此客户端控制权上了一些,从Kubernetes的功能来说,也少了一些。

下面是EKS缺省的Kubernetes功能,这其实是对客户的一种限制。

腾讯的ETK、EKS两种模式,前者类似于IaaS上面送Kubernetes软件,后者相当于用Kubernetes送给用户弹性服务。

阿里容器服务ACK

阿里容器服务ACK的功能比较全,分成了三种形态:

  • 专有版Kubernetes(Dedicated Kubernetes):需要创建3个Master(高可用)节点及若干Worker节点,可对集群基础设施进行更细粒度的控制,需要自行规划、维护、升级服务器集群。

  • 托管版Kubernetes(Managed Kubernetes):只需创建Worker节点,Master节点由容器服务创建并托管。具备简单、低成本、高可用、无需运维管理Kubernetes集群Master节点的特点,您可以更多关注业务本身。

  • 无服务计算Kubernetes(Serverless Kubernetes):无需创建和管理Master节点及Worker节点,即可通过控制台或者命令配置容器实例的资源、指定应用容器镜像以及对外服务的方式,直接启动应用程序。

阿里容器服务ACK三种模式,其实分别对IaaS上面送Kubernetes、托管Kubernetes、高度封装Kubernetes的模式。

阿里云称之为Serverless Kubernetes的内容,其实也并非很明确,Serverless这个词的内涵和外延很复杂。不过,阿里云的这种模式,的确让用户做的事情比较少。

阿里容器服务ACK产品架构图如下所示。

下面是阿里云三种Kubernetes的比较,这其实也就是客户的工作从多到少,客户控制权也从多到少。它们最终带来的是收费模式差别。

从客户的角度思考三种模式

在Kubernetes容器平台时代,以上提到的三种模式都有应用的场景,在各个云上的支持也属于各有侧重。

从客户的角度来说,三种模式的价值可以总结如下:

  • 模式1:在既有系统上云的过程中,只要让自己的系统成为云原生状态(能在标准Kubernetes上面运行),那么运行在自己的机房里面与运行在云上面的效果就是一样的,自己的控制权也是一样的。在很多系统还正在上云的情况下,这种模式价值显然比较大。

  • 模式2:本模式类似托管服务器模式,由于Kubernetes的Master与弹性权力交由云服务提供商,因此理论上效率更高。这种模式其实也有变数,根据云服务提供商的不同,客户得到的可能是Node(代表机器)、也可能是Pod(代表容器)。如果客户不需要对Kubernetes有很强的控制权,这种模式可以”省心、省钱“。如果已经是一些无状态服务,其运行仅仅是副本编排调度的问题,那么应用这种模式已经足够。

  • 模式3:客户如果只是需要运行一个很简单的程序,甚至不需要构建完整的image,这种模式可以提供”模板化“的支持。

发布于: 2020 年 05 月 19 日 阅读数: 57
用户头像

韩超

关注

还未添加个人签名 2017.10.20 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
韩老师你也太高产了
2020 年 05 月 21 日 15:14
回复
没有更多了
Kubernetes时代的云容器平台:各家云产品模式逐渐丰富