版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.4Serverless平台Kubeless武志学目录Kubeless简介01Kubeless的工作原理02Kubeless简介01Serverless概念简述Serverless产品分类开源Serverless产品CNCF与Serverless主流Serverless产品Serverless技术的兴起Serverless允许开发者无需关注服务器采购、硬件运维等问题,专注于业务拓展和创新。AWSLambda、AzureFunction、GoogleCloudFunctions和阿里云函数计算是代表。云原生计算基金会(CloudNativeComputingFoundation,CNCF)创立ServerlessWorkingGroup,推动CloudNative和Serverless技术结合。CNCFServerless产品全景图将产品分为工具型、安全型、托管平台型和可安装平台型等类别。主要基于Kubernetes构建,如Kubeless、OpenFaaS等,归类于可安装平台型。Serverless产品全景图Kubeless简介Kubeless是一个基于Kubernetes的Serverless框架,允许用户部署少量代码,而无需担心底层基础架构管道它利用Kubernetes资源提供自动扩展、API路由、监控、故障排除等功能Kubeless的组成Functions代表需要被执行的用户代码,同时包含运行时依赖、构建指令等信息Triggers代表和函数关联的事件源如果把事件源比作生产者,函数比作执行者,则触发器就是联系两者的桥梁Runtime代表函数运行时依赖的环境多语言支持Kubeless支持Python、Node.js、Ruby、PHP、Golang、.NET、Ballerina等多种语言及自定义运行时。CLI兼容性KubelessCLI与AWSLambdaCLI高度兼容,方便用户从AWSLambda迁移至Kubeless。事件触发器Kubeless的事件触发器使用Kafka消息队列和HTTP,支持多种事件源接入。监控与可视化Prometheus默认监视Kubeless函数的调用和延迟,方便用户进行监控和可视化。插件支持Kubeless支持Serverless框架插件,方便用户扩展功能和集成第三方服务。Kubeless的主要特点0102030405Kubeless的工作原理02能够基于用户提交的源码迅速构建可执行的函数,简化部署流程。Kubeless的基本能力敏捷构建能够方便地基于各类事件触发函数的执行,并能方便快捷地集成新的事件源。灵活触发能够根据业务需求,自动完成扩容、缩容,无须人工干预。自动伸缩CNCF对函数生命周期的定义如图所示。用户只需提供源码和函数说明,构建、部署等工作通常由Serverless平台完成。因此,基于用户提交的源码迅速构建可执行的函数是Serverless产品必须具备的基础能力。敏捷构建函数生命周期hello:将要部署的函数名称;--runtimepython2.7:指定使用python2.7作为运行环境。--from-filetest.py:指定函数源码文件。--handlertest.hello:指定使用test.py中的hello方法处理请求。Kubeless函数为自定义Kubernetes对象,基于CRD定义,利用Controller监听并处理CRD事件,用户通过命令操作CRD,Controller相应处理,实现函数构建与部署的自动化。敏捷构建Kubeless函数的工作流程敏捷构建使用Kubernetes的CRD定义资源,这里创建了一个名为functions.kubeless.ioCRD来代表Kubeless函数创建一个Controller监听CRD的添加、更新、删除事件并绑定Handler。这里创建了一个名为function-controller的CRDController,该CRDController会监听针对函数的添加、更新、删除事件,并绑定Handler用户执行添加、更新、删除CRD的命令CRDController根据监听到的事件调用相应的HandlerKubeless通过CRD定义函数,Controller监听并处理相关事件,用户命令触发函数创建,Controller调用Handler创建ConfigMap、Service、Deployment等Kubernetes对象,实现函数构建。Kubeless构建流程敏捷构建一个函数由若干Kubernetes对象组成,主要包括ConfigMap、Service、Deployment、Pod等。Kubeless函数的构成
ConfigMap用于描述函数的源码和依赖项Service用于定义函数的访问方式,并与执行函数逻辑的Pod相关联,通常类型为ClusterIPDeployment负责管理执行函数逻辑的Pod,可以设定所需的Pod数量Pod是执行函数逻辑的实际容器,Pod中的Volumes会将ConfigMap中的源码和依赖项挂载到指定的目录InitContainer负责将源码和依赖项复制到指定目录,并安装必要的第三方依赖FuncContainer则会加载InitContainer准备好的源码和依赖,并执行函数敏捷构建Kubeless利用Kubernetes组件和语言动态加载能力,实现源码到可执行函数的构建;Kubeless通过SecurityContext机制提高函数运行安全性,确保非root用户身份运行。总结灵活触发Serverless触发能力成熟Serverless产品需支持多样事件源触发,并便于接入新事件源,CNCF将函数触发方式分为同步请求、异步消息队列、消息流和批处理作业。函数触发方式Kubeless触发方式同步请求为阻塞调用,如HTTP;异步消息队列处理无序消息,如RabbitMQ;消息流按顺序处理有序消息,如Kafka;批处理作业通过并行实例处理任务。Kubeless支持多种函数触发方式,包括HTTP、CronJob及自定义触发器,满足不同事件源需求,通过访问ClusterIP类型的Service触发函数执行。123灵活触发:CNCF将函数的触类型同步请求(SynchronousReq/Rep):如HTTP请求、gRPC调用等。这种函数调用是一个阻塞调用,客户端发出请求并等待立即响应。异步消息队列请求(AsyncMessageQueue):如RabbitMQ、AWSSNS、MQTT、电子邮件、对象更改、计划事件(如CronJob)等。事件源将消息发布到消息交换机并分发到订阅消息的服务器进行处理,没有严格的消息顺序。消息流(MessageStream):如Kafka、AWSKinesis、AWSDynamoDBStream、DatabaseCDC等。对于一组有序的消息,消息必须按顺序处理。批处理作业(Job):如ETL作业、分布式深度学习、HPC模拟等。Job被调度或提交到队列,并在运行时使用多个并行函数实例进行处理,每个实例处理工作集(任务)的一个或多个部分。当所有并行工作人员成功完成所有计算任务时,作业即完成。灵活触发:CNCF将函数的触类型灵活触发HTTP触发器自定义触发器CronJob触发器Kubeless通过NginxIngressController实现HTTP触发器,利用CRD定义HTTP触发器对象,并创建Controller监听相关事件,实现HTTP请求转发至函数。Kubeless利用KubernetesCronJob特性实现定期触发,通过CRD定义CronJob触发器对象,并创建Controller监听相关事件,实现定时任务调度与执行。Kubeless支持自定义触发器以满足业务需求,需创建CRD描述事件源属性,并部署CRDController监听CRUD操作以触发函数执行,同时确保与函数关联。灵活触发自动伸缩机制概述Kubernetes通过水平自动伸缩(HPA)机制实现Pod自动扩展,Kubeless函数通过Deployment部署,可利用HPA实现自动伸缩。度量数据使用HPA基于度量数据对函数进行自动伸缩,包括CPU利用率、QPS及多项指标;可通过命令行或YAML文件创建HPA,实现Pod数量的控制与调整。度量数据获取自动伸缩需HPA获取度量数据,Kubeless支持CPU和QPS指标;CPU数据从MetricsServer获取,QPS需部署Prometheus、写入数据和CustomAPIServer。自动伸缩策略Kubeless依赖HPA实现自动伸缩,策略包括计算目标副本数、平滑副本数、规范副本数,最终执行扩容缩容操作,避免频繁伸缩和系统抖动。自动伸缩自动伸缩自动伸缩的第一步是要让HPA能够获取度量数据kubeless中的函数支持基于cpu和qps这两种指标进行自动伸缩CPU使用率属于内置度量指标,HPA可以通过metricsAPI从MetricsServer中获取数据MetricsServer可以通过kubernetes.summary_api从Kubelet、cAdvisor中获取度量数据QPS属于自定义度量指标,获取指标度量数据步骤部署用于存储度量数据的系统Prometheus,一套开源监控&告警&时序数据解决方案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场噪声扬尘在线监测运维规范
- 2026年物业项目经理业务培训试题(附答案)
- GBT 47978-2026 环境管理 定量环境信息 指南和示例标准立项发展报告
- tdm口服药治疗诺和龙治疗课件
- ACC恩格列净-急性心力衰竭患者早期获益的新选择-EMPULSE试验解读全文
- 2025年难治性胃癌的分子分型与精准治疗
- 城市公交候车亭光伏发电改造工程环境影响评价报告
- 图像灰度化与边缘检测程序应用技巧课程设计
- 城市供水安全保障专业培训考核大纲
- 城市公交专用道设置对公交运行效率影响断点回归与中介分析结合
- SH3503-2023石油化工交工建设工程交工技术文件编制规范表格
- 法治中国建设规划2026 ~2030年编制指南与要点
- (2026年)抗抑郁药与麻醉课件
- 压力管道设计和校核人员考核测试试题库(综合版)
- 肥料装卸制度及流程规范
- 2026年上海市教师职称考试(德育二)综合能力测试题及答案解析
- 智能产品介绍课件
- 2026年上海师范大学天华学院单招(计算机)考试备考题库必考题
- 2025-2026学年人教版二年级体育与健康全一册教案设计
- 死囚漫步五步陷阱课件
- 天津大学物理化学第五章化学平衡教案
评论
0/150
提交评论