2018云栖大会武汉峰会企业研发云专场,阿里云高级技术专家汤志敏带来“容器加速业务创新,Serverless Kubemetes之解读”的精彩演讲,本文首先介绍了云原生架构的概念,其次详细阐述了标准的Kubernetes的做法,最后描述了做Serverless的初衷是希望云服务器与Kebernetes结合起来。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
直播视频回顾请点击
以下为精彩视频内容整理:
原生架构应用及概念
随着世界的发展越来越快,未来所有的应用都在云上,这个云并非指阿里云的公有云是云,线下的私有云或专有云也是云,所有的应用都会在不同云上云下,从云原生的架构思路考虑问题,若此应用不能假定是否能部署在机房内还是阿里云或亚马逊,一定要考虑到应用是能够流动的。
CNFS基金会对云原生架构的定义
所有应用都通过容器化部署,容器是敏捷的好伙伴,对容器轻量级的不断部署并通过不断的迭代,可以帮助业务交付从月到周;通过编排系统动态资源管理:整个应用可通过动态部署
应用,可能从A机房到B机房,也可能从A云到不同云的跨越;通过微服务交付。
容器技术助力企业数字化转型,使用容器技术可解决不同层次敏捷基础的架构、敏捷的应用架构。
上图为 Kubermetes和应用编排的示意图,标准化和开放性:
- CRI容器运行时接口
- CSI容器存储时接口
- CNI容器网络接口
- CRD自定义资源
2017年Kubermetes受到人们广泛好评,主要因为Kubermetes本身设计好,有大厂商的规划和基金会作组织。Kubermetes定义了容器存储接口,容器运行时接口,容器网络接口等,它可以做Framework来试费不同的云资源,利用它并在不同云的架构上作牵引,还可以更方便对多云进行管理。
上图 Kubermetes使用情况的示意图,越来越多的企业通过Kubermetes来管理容器,但其复杂度仍然是一个挑战,去年7月国外做了一份报告,69%的企业通过Kubermetes管理容器,右图为国内和海外使用情况的对比,发现国内客户在使用上有较多问题,例如管理的复杂性和安全管理,并对这些问题作了最佳实践。
标准的Kubermetesde的做法
最初使用Kubermes会使用一些试点应用或新的应用来运行,在阿里云上有一个阿里云容器服务的产品做了一个最佳的实践,提供了一个标准的Kubermetes集群管理的内部,并在公务云或公装云做一个部署,同时也提供了多级管理内置混合云的管理,在不同环境下作牵引,升级和安全的架构,专注集成做DevOPs与云效应集成,并更好地做微服务和支持企业的应用,现在的技术几乎都与容器效应有一个密切的结合,譬如深度学习框架等,在云上或线下的可以方便使用。下图为阿里云容器服务的框架框图
阿里云Kubernetes的涉及理念
企业级支持:国内最大规模公有云容器集群有3年实战验证,可以支持数千群,3可用区高可用集群,优点如下:有一个高性能网络方案性能优于普通方案20%和高性能日志采集超10万Qps;对于企业级安全体系,可支持全链路加密;支持自动故障恢复和弹性伸缩;支持企业级服务。
阿里云无缝集成:首先其集成超过20款云产品,其次支持ECS服务和GPU服务,裸金属服务器,同时也支持VPC、ENI、SLB;主要集成阿里云日志、监控;存储EBS、NAS、OSS;RAM、STS等安全服务。
兼容社区:全球首批通过KUbermetes一致性认证,支持1.8和1.9;支持最新版本一键升级,内置混合云并支持Federation和Open Service Broker;支持HELM BASED的应用目录。
从上图可看出使用Kebernetes需要许多的组件管理,无论是负载循环、弹性伸缩还是混合云管理的应用都需要应用适配器、阿里云管理服务和集群中的管控及节点。
容器生态合作如上图所示随着社区的不断发展,尤其是CNCF社区,开发其实是各种产品之间的框架,也是会与外围产品做集成。例如用监控能力或日志与开发者做集成。
使用Classic Kebernetes的常见步骤 :选择机器的数量并做容器规划,节点规格、数据盘选择,配置复杂的管理工具与容器,配置调度与编排,对系统进行软件审计和安全补丁更新,最后对系统进行监控和维护。
Serverless+Kubernates结合
针对容器优化的Serverless平台,享有Kubernetes的强大管理能力,并支持Workloads中的Deloyment、StatefulSet、Job、CroJob,社区可将应用架构和组件架构抽象出来,不用管理服务器的本身例如创建机器和管理基础设施、运维、升级和容量规划。但要关注产品应用的本身,应按照应用消耗付费,而并非底层资源,根据应用类型自动弹性伸缩,还需更细粒度的资源消耗。
上图左图所示为经典Kubernetes容器服务,按照集群节点数量收费;右图为Serverless Kuberneest容器服务,按照应用使用资源收费-无需管理服务器节点。
上图为和其他Serverless的对比,纵向区分从平台、框架、工具进行区分。Serverless的不同层次主要是面向函数平台、容器平台和框架平台,Serverless屏蔽了服务器并对特定领域做抽象。
阿里云函数计算vs Serverless Kubernetes
阿里云函数计算是阿里云旗下Serverless的产品,函数计算就是面向函数、代码片段,用汇编语言进行编译,其次是支持特定版本的编程语言和架构,函数计算内置多种触发器;Surverless Kubernetes的面向对象是面向容器,不需语言绑定,可灵活构建所需服务器名单,并提供了Kubernetes的编排能力,同时支持更多的类函数计算产品。
Serverless Kubernetes优势主要有以下几个方面:
- 简单易用:1.5秒创建集群,30秒部署应用;无需管理Kubernetes集群。
- 生态融合:可使用Kubernetes原生API,享受Kubernetes生态;与阿里云基础设施无缝集成;支持和用户VPC的应用网络互联互通。
- 安全隔离:基于弹性计算基础架构,提供POD的强隔离;可混合部署非可容和应用。
- 按需计费:按POD的CPU和内存计费;可配置弹性伸缩策略。
最后简单地介绍下Serverless KEBERNETES控制台,通过控制台开发集群创建所需区域,Serverless Kubernetes主要应用于多媒体处理、IOT后端、批处理WEB应用或移动后端等。
本文由云栖志愿小组毛鹤整理编辑