BpFile(id=332, bpId=204, name=基于Knative的消息流事件处理, author=null, keyword=容器服务ACK,消息中间件Kafka,容器弹性实例ECI, description=描述了事件通过阿里云消息队列Kafka实时推送到服务端进行数据和业务处理,并基于Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。, position=null, ossUrl=bp-E4TOR94SB8MGAJ1A.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
随着业务波峰波谷需要动态进行扩容和缩容,比如在直播系统的用户在线互动场景中,互动行为随机产生并存在波峰波谷,如何快速应对这种敏态业务?基于Knative的事件处理是一个较好的处理方案,Knative Eventing提供了事件全局订阅、传递和管理能力,实现了事件驱动,使得生产和消费事件变得容易,同时Knative的弹性解决了资源高峰需求。本文中描述了事件通过阿里云消息队列Kafka实时推送到服务端进行数据和业务处理,并基于Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的
心智负担。
, templateId=FSSTHFY3IBTGHUJD, freetry=, visitTime=null, visitCount=null, video_url=, buttonName=null, buttonUrl=null, targetId=FSSTHFY3IBTGHUJD, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1
基于 Knative的消息流事件处理 最佳实践
业务架构 场景描述
本文中描述了事件通过阿里云消息队列 Kafka
实时推送到服务端进行数据和业务处理,并基
于 Knative的弹性来实现满足资源高峰需求,
做到真正的按需使用,实时弹性,整个过程完
全自动化,极大的减少了业务开发人员在基础
设施上的心智负担。
方案优势
产品列表
1. 极致弹性:基于业务负载情况,自动进
容器服务 ACK
行容器实例的秒级弹性伸缩;
消息中间件 Kafka
2. 事件处理:基于阿里云容器对消息队列
容器弹性实例 ECI
进行集成,弹性处理海量业务消息;
3. 异构计算:支持对 GPU、NPU等
最佳实践频道 阿里云最佳实践生态群
4. k8s兼容:完全兼容 k8s,用户可以开
通阿里云容器服务 ACK/ASK后一键安
装并使用,支持容器控制台和 kubctl两
种方式进行管理操作。
解决问题
集群资源利用率低,资源有浪费。
集群资源可扩展性差
2
阿里云
企业上云实践
基于 Knative的消息流事件处理
最佳实践
文档版本:20210323
文档版本:20150122(发布日期) II
3基于 Knative的消息流事件处理 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 基于 Knative的消息流事件处理
文档编号 187
文档版本 V1.0
版本日期 2021-03-23
文档状态 对外发布
制作人 川知
审阅人 元毅
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2021-03-23 川知 元毅 创建
V1.1 2021-04-16 川知 添加镜像构建
文档版本:20210323 I
4前言
基于 Knative的消息流事件处理
前言
概述
本文中描述了事件通过阿里云消息队列 Kafka实时推送到服务端进行数据和业务处
理,并基于 Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时
弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。
应用范围
适用于事件驱动场景
名词解释
ECI:弹性容器实例,是敏捷安全的 Serverless容器运行服务,用户无需管理底
层服务器,只需要提供打包好的镜像,即可运行容器,并仅为容器实际运行消耗
的资源付费,通过 Virtual Kubelet,ECI能够无缝对接 Kubernetes。详情请参
见 https://www.aliyun.com/product/eci
容器服务 Kubernetes版(ACK):简化集群的搭建和扩容等运维工作,整合阿里
云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes容器化应用运
行环境,为您提供专业的容器支持和服务。详情请参见:
https://www.aliyun.com/product/kubernetes
文档版本:20210323 III
5目录
基于 Knative的消息流事件处理
目录
文档版本信息 ........................................................................................................................................................ I
法律声明 ............................................................................................................................................................... II
前言 ..................................................................................................................................................................... III
目录 ..................................................................................................................................................................... IV
最佳实践概述 ....................................................................................................................................................... 1
前置条件 ............................................................................................................................................................... 2
1. 基础环境搭建 ............................................................................................................................................... 3
1.1. 通过 CADT创建资源 ...................................................................................................................... 3
1.2. Knative安装 ................................................................................................................................... 4
2. 消息流处理应用部署 .................................................................................................................................. 11
2.1. 创建 Kafka Topic及消费组 ........................................................................................................... 11
2.2. 部署应用 ...................................................................................................................................... 12
2.3. 部署压力测试用例....................................................................................................................... 17
3. 基于节点池的弹性扩容 .............................................................................................................................. 19
3.1. 节点池基本概念 .......................................................................................................................... 19
3.2. 添加弹性伸缩节点池 ................................................................................................................... 19
3.3. 压测扩容 ...................................................................................................................................... 23
3.4. 小结 ............................................................................................................................................. 25
4. 基于 ECI的弹性扩缩容 ............................................................................................................................... 28
4.1. 安装 virtual kubelet autoscaler ..................................................................................................... 28
4.2. 压测扩容 ...................................................................................................................................... 30
4.3. 小结 ............................................................................................................................................. 32
5. 代码解析 ..................................................................................................................................................... 34
5.1. 关于 CloudEvents ......................................................................................................................... 34
5.2. 实现 ............................................................................................................................................. 34
文档版本:20210323 IV
6基于 Knative的消息流事件处理 最佳实践概述
最佳实践概述
概述
随着业务波峰波谷需要动态进行扩容和缩容,比如在直播系统的用户在线互动场景中,
互动行为随机产生并存在波峰波谷,如何快速应对这种敏态业务?基于 Knative的事
件处理是一个较好的处理方案,Knative Eventing提供了事件全局订阅、传递和管理
能力,实现了事件驱动,使得生产和消费事件变得容易,同时 Knative的弹性解决了
资源高峰需求。本文中描述了事件通过阿里云消息队列 Kafka实时推送到服务端进行
数据和业务处理,并基于 Knative的弹性来实现满足资源高峰需求,做到真正的按需
使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的
心智负担。
方案架构和优势
方案架构
方案优势
ᅳ 极致弹性:基于业务负载情况,自动进行容器实例的秒级弹性伸缩;
ᅳ 事件处理:基于阿里云容器对消息队列进行集成,弹性处理海量业务消息;
ᅳ 异构计算:支持对 GPU、NPU、FPGA 应用部署;
ᅳ k8s兼容:完全兼容 k8s,用户可以开通阿里云容器服务 ACK/ASK后一键
安装并使用,支持容器控制台和 kubctl两种方式进行管理操作。
文档版本:20210323 1
7基于 Knative的消息流事件处理 前置条件
前置条件
为了顺利完成本实践,您需要提前完成以下准备工作:
注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证
页面(https://account.console.aliyun.com/v2/#/authc/home)查看是否已经完成
实名认证。
阿里云账户余额大于 100元。您可以登录阿里云控制台,并前往账户总览页面
(https://expense.console.aliyun.com/#/account/home)查看账户余额。
本文实例代码下载地址:https://code.aliyun.com/best-practice/204.git
文档版本:20210323 2
8基于 Knative的消息流事件处理 基础环境搭建
1. 基础环境搭建
1.1. 通过 CADT创建资源
本实践可使用云架构设计工具 CADT快速部署资源环境。CADT使用手册请参见:
https://help.aliyun.com/document_detail/186134.html
步骤1 登录 CADT控制台(https://bpstudio.console.aliyun.com/),选择官方模板新建。
步骤2 搜索“knative事件处理”模板,选择基于方案新建。
步骤3 修改 ECS密码。
文档版本:20210323 3