论文部分内容阅读
自从谷歌在数年前推出Kubernetes以来,Kubernetes已迅速成为了一种热门技术。微服务指可在容器中运行并协同工作以充当较大型应用程序的小型可独立部署的服务,其可以跨各种类型的基础设施进行移植。而作为组合和运行由微服务组成的应用程序平台,Kubernetes可以说是不二选择。
Kubernetes是一种编排工具,它意味着开发人员可以查看、协调和管理容器化工作负载和服务,以运行弹性分布式系统。据云原生计算基金会(CNCF)在2018年8月发布的数据,40%的受访者(来自5000多家企业)已经在生产中运行Kubernetes。
对于开源项目而言,这是一个不错的进步,不过值得注意的是,在这些企业中,绝大多数在使用Kubernetes时都只运行少数应用程序。尽管如此,其发展方向已经变得非常清晰,即基于容器的微服务应用程序是未来,Kubernetes则是其平台。这就是为什么这三大云服务提供商都推出了托管版Kubernetes的原因,而思科、惠普、IBM/Red Hat、微软、VMware/Pivotal等则将Kubernetes纳入到了其核心软件产品当中。
Kubernetes使得各种规模的企业都能够加快其开发人员的速度,提升部署和扩展应用程序的敏捷性,现代化其技术堆栈。例如,在线零售商Ocado自2000年以来一直为英国家庭提供新鲜食品,其已经建立了自己的技术平台来管理物流和仓库。2017年,该公司决定开始将其Docker容器迁移到Kubernetes上,并于当年夏季在其私有云上将其第一个应用程序投入到生产当中。
对于Ocado和其他企业来说,这一转变的最大好处是可以更快地将产品推向市场,并可以更为高效地利用计算资源。同时,Kubernetes的采用者也都指出了一个缺点,即学习曲线陡峭。尽管从长远来看,该技术将使开发人员的工作变得更加轻松,但是这并不意味着他们的工作将变得简单化。
以下是一些大型的全球公司在生产中运行Kubernetes的案例,以及这些公司在此过程中得到的经验和教训。
彭博社从早期部署中获得好处
专业的金融数据公司彭博社在2015年就开始使用Kubernetes,当时该工具仍处于测试阶段。在该工具在持续集成、监控和测试等方面通过了验证后,彭博社于2017年将其投入到生产当中。
彭博社每天要处理数千亿个金融数据点,仅其Terminal终端机就在为14000种不同的应用程序提供着驱动力。IT部门希望加快为用户带来新应用程序和服务的速度,并使开发人员从操作任务中脱身。
在评估了各种编排平台(例如Cloud Foundry、Mesosphere Marathon和各种Docker产品)之后,彭博社选择了Kubernetes。彭博首席技术官办公室计算基础设施主管Andrey Rybka解释说:“因为它们具有良好的基础,很明显这是我們正要解决的问题。它们的愿景和发展路线图正是我们想要的。”
经过了一段时间之后,彭博社在Kubernetes上开发了一个本地化的平台即服务层,以为开发人员提供合适的抽象级,进而让他们能够高效地使用该技术。这个自助服务Web门户实质上是一个命令行界面和REST API,其与基于Git的版本控制系统、CI构建系统和中央工件存储库集成在了一起。
彭博社的一个主要目标是利用Kubernetes的自动扩展功能更好地利用现有硬件,以及在无问题反馈单的情况下即可实现虚拟计算、网络和存储的可自我配置和灵活收缩。Rybka在CNCF案例研究中表示:“借助Kubernetes,我们可以非常高效地使用硬件,以使利用率达到90%~95%。” 这种效率很大程度上来自于能够控制为指定工作负载提供的资源,因此不会导致其他工作负载资源不足。
与大多数企业在生产中采用Kubernetes的情况一样,主要挑战来自使用YAML编写清单,这些清单会指定Kubernetes如何分配资源。Rybka说:“这些都是Kubernetes中非常棒的概念,但是它们需要陡峭的学习曲线。”
正如彭博社的数据和分析基础设施主管Steven Bower所说的那样,“Kubernetes让很多事情变得更加容易,但是不一定会更简单。”
为此,彭博社从最基本的清单着手逐步推进,同时开始展开大量的内部培训计划,一开始只将标准限在一个很小的范围,随着开发人员对技术的逐步熟悉,开发人员可以扩大标准的使用范围。
他说:“我们现有的基础设施很多,但是从大型主机迁移到Kubernetes的可能性为零。”编排平台主要针对的是基于Web的应用程序和全新的系统。在Bower工作的数据与分析基础设施团队中,最初的方法是建立一个新的数据科学计算平台,供机器学习工程师使用Spark和TensorFlow等工具运行复杂的工作负载。
在谈到建立专业知识的重要性时,Rybka给出了他的的忠告。他说:“实际上,用户必须要拥有一个与上游Kubernetes、CNCF和整个生态系统保持密切联系的专家团队,以获得大量的内部知识。用户不能光依靠供应商,他们自己还需要了解所有与此相关的复杂性。”
News UK通过Kubernetes实现了按需扩展
作为媒体巨头新闻集团(News Corp)的英国分支机构,News UK自2017年以来就开始尝试Kubernetes,2018年他们从自己自定义Kubernetes集群迁移到了亚马逊网络服务(AWS)托管的Elastic Kubernetes Service(EKS)上。后者构成了堆栈的一部分,其中包括了部分AWS服务,如Elastic Container Service、Fargate计算引擎、AWS Batch和Elastic Beanstalk。