作者介绍:梁胜博士,Rancher Labs Inc. 联合创始人及CEO。Java语言J2SE平台核心组件JNI的作者,JVM的领导设计与开发者。2008年创建cloud.com,被誉为CloudStack之父。2011年cloud.com被Citrix收购,成为Citrix首位华人CTO。2014年创立Rancher Labs,公司产品Rancher是开源的企业级容器与Kubetnetes管理平台。
谈及容器技术,毫不夸张地说,2017年是“Kubernetes之年”。
Kubernetes自2014年推出以来,就一直保持稳步增长,但在2017年,增长速度远超大家的想象。
1、以我自己的公司Rancher Labs来说,我们创建的容器管理平台Rancher在过去支持多种容器编排框架,包括Swarm、Mesos和Kubernetes。为了满足市场和客户的需求,Rancher 2.0版本100%的放在Kubernetes上。我们并不孤单,甚至包括Docker和Mesosphere在内的竞争框架的开发商也宣布支持Kubernetes。
2 、Kubernetes的安装和操作变得更容易了。实际上,在大多数情况下,您不再需要安装和操作Kubernetes。所有主要云提供商,包括谷歌、微软Azure、AWS和中国领先的云服务提供商,如华为、阿里巴巴、腾讯,都推出了“Kubernetes即服务”。这不仅让使用谷歌GKE或华为CCE的云Kubernetes更加简单,同时,也更加便宜。 云服务提供商通常不对运行Kubernetes主机所需的资源进行收费。因为要运行Kubernetes API服务器和etcd数据库至少需要3个节点,所以云“Kubernetes即服务”可以节省大量的成本。对于那些仍然想在自己的数据中心中运行Kubernetes的用户,VMware推出了Pivotal Container Service (PKS.)。事实上,有超过40家供应商提供了CNCF认证的Kubernetes发行版本,运行和操作Kubernetes比以往任何时候都要容易。
3、Kubernetes快速增长的一个最重要标志,就是大量用户开始在Kubernetes上运行他们的关键任务生产工作负载。由于Rancher从最开始就支持多个编排引擎,我们对Kubernetes的增长更加敏感。例如,我们一个美国财富50强金融服务公司客户,他们每天都在Kubernetes集群上运行他们的应用程序,处理数十亿美元的事务。 另外一个我们观察到的重要趋势是,用户在生产环境中运行Kubernetes时越来越关心安全性。
回到2016年,我们从客户那里听到的最常见的问题都是围绕着CI/CD。那时,Kubernetes主要用于开发和测试环境。
现在,客户最常见的特性要求是单点登录、集中访问控制、应用和服务之间的隔离、基础设施强化、secrets和凭证管理。
我们相信,提供单独一层来定义和执行安全政策将是Kubernetes***的卖点之一。我们预测,安全将继续成为2018年最热门的发展领域之一。
由于云提供商和VMware都支持Kubernetes服务,Kubernetes已经成为新的基础设施标准。这对IT行业有着巨大的影响。
众所周知,计算工作将转移到IaaS云上,IaaS是建立在虚拟机上的,而虚拟机没有标准的虚拟机镜像格式或标准的虚拟机集群管理器。
因此,为某一种云构建的应用程序很难轻松地部署到其它云上。Kubernetes的出现成为这个游戏规则的改变者。构建Kubernetes的应用程序可以部署在任何兼容Kubernetes服务上,而不用考虑底层基础设施。在Rancher客户中,我们已经看到了多云部署被广泛采用。对于Kubernetes来说,多云计算很简单。DevOps团队也大受裨益,因为整个系统的灵活性、可靠性以及成本都大为提升。
我对Kubernetes将在2018年继续增长感到非常兴奋。
以下是我们应该关注的一些具体领域:
1、在最近的KubeCon上,最热门的话题是Service Mesh。Linkerd、Envoy、Istio等等都在2017年开始流行。尽管这些技术的应用还处于初级阶段,但潜力是巨大的。人们通常认为Service Mesh是一个微服务框架。但是,我认为,Service Mesh将带来的好处远远超出了任何一个微服务框架。Service Mesh可以成为所有分布式应用程序的共同基础。它为应用程序开发人员提供了大量的支持,用于通信、监视和管理组成应用程序的各种组件。这些组件可能是也可能不是微服务。它们甚至不需要用容器来建造。即使现在没有多少人使用Service Mesh,但是,我们相信它将在2018年快速流行起来。我们和容器行业的大多数人一样,都想参与其中。现在,我们正在集中精力将Service Mesh技术集成到我们的产品中。
2、“云原生应用(Cloud Native Application)”这个术语已经流行了好几年。它的意思是开发出能在类似AWS这样的云上运行的应用,而不是在像vSphere或物理机集群那样的静态环境中运行。为Kubernetes开发的应用程序被定义为“cloud-native ”,因为现在所有的云都可以使用Kubernetes。然而,我相信,世界已经准备好从cloud-native转为Kubernetes-native。我知道有许多组织专门开发用于运行Kubernetes的应用程序。虽然这些应用程序并不仅仅使用Kubernetes作为部署平台,但是他们将数据保存在Kubernetes自己的etcd数据库中;他们使用Kubernetes用户资源定义(CRD)作为数据访问对象;他们在Kubernetes控制器中编码业务逻辑;他们使用Kubelets来管理分布式集群;他们在Kubernetes API服务器上构建自己的API层;他们使用“kubectl”作为他们自己的CLI。 Kubernetes-native应用构建简单,并且可以在任何地方运行,同时还支持大规模扩展。2018年,我们一定会看到更多的Kubernetes-native应用出现。
3、现在大多数人使用Kubernetes来部署他们自己的应用程序。没有多少组织愿意将他们的应用程序包交付到YAML files或Helm charts中。我相信这种情况即将改变。已经有很多现代软件比如像TensorFlow这样的AI框架都可以作为Docker容器获取。在Kubernetes集群中很容易部署这些容器。几个星期前,Apache Spark项目增加对Kubernetes的支持,将Kubernetes作为调度器。除了Mesos和YARN外,Kubernetes现在是一个很棒的大数据平台。我们预测,未来所有服务端软件包都将作为容器分发,并使用Kubernetes作为集群管理器。
2018年,即时可用的YAML files或Helm charts将会有大幅度的增长及应用。 回头来看,2017年Kubernetes的增长远远超过了我们所有人在2016年底的预期。虽然我们预料到AWS能够支持Kubernetes,但我们并没有预想到service mesh和Kubernetes-native也会受到极大的关注。相信2018年会继续给我们带来许多意想不到的技术发展。我迫不及待地想知道!