Kubernetes,是Google开源的Docker容器集群管理系统,它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,本质上可看作是基于容器技术的mini-PaaS平台。目前,无论是公有云还是私有云,甚至混合云,Kubernetes将作为一个为任何应用、任何环境的容器管理框架无处不在。正因为如此,受到各大巨头及初创公司的青睐,如Microsoft、VMWare、Red Hat等,纷纷加入Kubernetes的阵营。但是,像单机操作系统Linux一样,Kubernetes虽然开源了,安装和部署却相当复杂,需要专业知识和专业团队。
大数据公司百分点集体和云知声两家公司都在使用Kubernetes。在百度硅谷AI实验室资深科学家王益的协调下,两方合作,成倍地提升了集群利用率和团队工作效率,并且一起开发了开源的Kubernetes“发行版”Sextant——实现几乎零操作的全自动安装和部署Kubernetes集群。目前有多家互联网同仁在准备使用和参与开发。
9月9日,分布式操作系统的“发行版”:Sextant正式发布。百度硅谷AI实验室资深科学家王益、百分点集团技术副总裁刘译璟、普惠金融CTO方亮、云知声联合创始人李霄寒,接受了51CTO记者的采访,对Docker和Kubernets的运维趋势进行了深入解读。
Kubernetes的优与劣
Kubernetes提升了团队工作效率。因为所有作业都由分布式操作系统来调度,工程师们也不需要登陆到服务器。这降低了安全隐患,不需要工程师先登陆“跳板机”再从跳板机登陆服务器,从而提升了工作效率。此外,Kubernetes改变了工程师们的日常工作流程——通过要求开发团队交付Docker image而不只是可执行文件,Kubernetes简化了集成测试,省去了发布、打包、部署、执行、监控、清理垃圾等运维工作。Kubernetes带来的另一类工作效率提升在于降低了并行计算框架(如MapReduce、Spark、Storm等)的开发难度和成本。开发者不必再套用几个成熟的开源框架来写自己的分布式程序,而是可以基于Kubernetes方便地开发自己的并行计算框架。值得注意的是,基于Kubernetes用Go语言开发的MapReduce框架,其代码行数是Hadoop MapReduce的百分之一,这意味着bug概率的极大降低,和处理bug的工作时间的极大节省。
Kubernetes集群的安装需要大量繁琐的手工操作。因为Kubernetes和相关技术在高速演进,很多手工操作需要重复执行。此外,手工操作数十台甚至数百台服务器很容易出错。这是目前在技术研发工作中碰到的***痛点。
为什么是Sextant
此次将Kubernetes的发行版命名为Sextant(航海用的六分仪),是因其和Docker(集装箱)、Kubernetes(船舵)一样,都是和航海、船相关的物品。
说到Sextant的研发初衷,百分点技术副总裁刘译璟解释说,百分点在2015年底大约有1000多台机器, CPU的平均利用率只有18%,Hadoop整个集群利用率将近100%,2016年的数据量至少会增长50%以上,考虑到成本,百分点团队希望能够通过技术的力量解决这个问题,而不是购买新机器。
在百度硅谷AI实验室资深科学家王益的建议下,决定从Kubernetes入手,希望把百分点Web以及大数据的应用在Kubernetes搭建起来。考虑到Kubernetes安装和部署的复杂性,急需一套快捷的自动化的部署工具,把Kubernetes整个集群构建起来。云知声的主要业务是人工智能,机器学习,在这方面可以和百分点互补,于是,在王益的协调下,百分点和云知声两家公司,本着研发出快速部署、安装Kubernetes工具的目标,合作组建了研发团队。
经过一个多月的努力,Sextant的***个版本诞生了。为了方便重装系统,Sextant会在数据中心中的一台bootstrapper服务器上部署PXE service,然后依次重启其他服务器。这些服务器启动的时候,BIOS/EFI从PXE service引导CoreOS,并将CoreOS安装到本地磁盘,并配置Kubernetes,随后重启服务器,这台服务器便可自动成为Kubernetes集群的一员了。为了将这种变化限定于数据中心里的一部分服务器,Sextant可以利用VLAN等隔离措施。因为Kubernetes是以容器的形式运行的,而每当Kubernetes升级时,Sextant将升级版本的容器镜像放到bootstrapper服务器上,集群即可自动升级Kubernetes。每当CoreOS升级的时候,Sextant也将新版本放到bootstrapper服务器上,CoreOS会自动升级和重启,并且保证每次同时重启的机器数量是集群总数的一个极小的比例,不影响不中断Kubernetes调度的分布式作业。所有的升级和安装,都不依赖集群可以直接访问互联网,从而保证了安全性。
强强联合,开辟全新的合作图景
云知声联合创始人李霄寒介绍说,近年来,语音和视觉技术随深度学习的进一步发展,创造了IoT、AR和无人车等新兴领域。未来的互联网会和人们的生活契合得更紧密,收集更多更细致的数据,也需要更大规模人工智能技术的支持。而这些恰好是百分点和云知声的业务基础和技术长项。Kubernetes提供了一个合作的平台:Kubernetes可以同时调度离线和在线作业。尤其是Kubernetes的service和load balancer的概念,使其可以调度在线服务、日志收集处理和存储、AI模型的训练等各类不同的作业。在有Kubernetes之前,公司之间的合作往往是松耦合的;而在Kubernetes平台上,开发团队可以同时运行百分点的EFK技术用于收集和管理数据,以及云知声的大规模AI系统从数据中提取知识和提升服务质量。
对金融界的意义
据普惠金融CTO方亮介绍,互联网金融的核心有两点:一是去中心化,二是风控。在互联网金融领域,需要不断寻找各种各样的数据,包括像百分点这样的第三方提供的数据,自己的爬虫数据,还有一些自由数据。如何把这些数据处理好,不管是传统基于统计的风控模型,还是基于***的一些人工智能,深度学习这种新方式做模型,都需要很大的计算资源。如何组织好这些计算资源,让它们有弹性,可以扩展,能够为风控、为真正金融消费者服务,Kubernetes等容器技术给互联网金融带来了变革。
Sextant是一个早期开源项目,随着Kubernetes技术的演进,Sextant还需要长期维护开发。百分点和云知声的技术团队以充分开放的心态,愿意分享各自业务中Kubernetes技术的使用经验。也愿意帮助业界同仁使用Sextant简化Kubernetes部署。百分点和云知声都表示欢迎相关技术人员一起合作投入到Sextant的开发工作中,为提升团队工作效率和计算能力共同努力!