linux怎么查看本机内存大小
315
2022-10-25
Serverless事件驱动 Kubernetes(ACK)+Knative实践
本blog描述了事件通过阿里云消息队列Kafka实时推送到服务端进行数据和业务处理,并基于Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。
名词解释:
ECI:弹性容器实例,是敏捷安全的Serverless容器运行服务,用户无需管理底层服务器,只需要提供打包好的镜像,即可运行容器,并仅为容器实际运行消耗的资源付费,通过Virtual Kubelet,ECI能够无缝对接Kubernetes。详情请参见Eventing提供了事件全局订阅、传递和管理能力,实现了事件驱动,使得生产和消费事件变得容易,同时Knative的弹性解决了资源高峰需求。本文中描述了事件通过阿里云消息队列Kafka实时推送到服务端进行数据和业务处理,并基于Knative的弹性来实现满足资源高峰需求,做到真正的按需使用,实时弹性,整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。
方案优势
ᅳ极致弹性:基于业务负载情况,自动进行容器实例的秒级弹性伸缩;
ᅳ事件处理:基于阿里云容器对消息队列进行集成,弹性处理海量业务消息;
ᅳ异构计算:支持对GPU、NPU、FPGA 应用部署;
ᅳk8s兼容:完全兼容k8s,用户可以开通阿里云容器服务ACK/ASK后一键
安装并使用,支持容器控制台和kubctl两种方式进行管理操作。
通过CADT创建资源
步骤1登录CADT控制台(sudo docker login --username=ecosyst****@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com
$ docker push registry.cn-hangzhou.aliyuncs.com/knative0531/knative0531:[镜像版本号]
步骤5构建并发布镜像
打开命令行,下载代码示例:(git clone git@code.aliyun.com:best-practice/204.git) PS:如果没有download git的话,建议科学合理绿色上网。
有些同学会出现Permission denied (publickey).的错误,不要设置你的github,而是阿里云的code管理上增加你的SSH公钥:(这个方法不在赘述,跟添加git公钥一样)
进入到dockerfile目录,解压执行文件包
构建镜像
登录阿里云Docker Registry
docker login --username=ecosyst****@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com
创建docker镜像:
docker bulid -t registry.cn-hangzhou.aliyuncs.com/knative0531/knative0531:[镜像版本号]
登录机镜像仓库,并上传:docker login --username=ecosyst****@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com
docker push registry.cn-hangzhou.aliyuncs.com/knative0531/knative0531:[镜像版本号]
消息流处理应用部署
步骤1登录kafka服务控制台(install kafka
步骤3将示例代码(code文件中的python脚本部分)编辑到kafka_test.py文件中。
步骤4压测。
python3 kafka_test.py--kafka=xxxx--times=1000
(XXXX表示kafka接入地址)
由于囊中羞涩,压测就不做了。涉及到压测,就一定有另外一个知识点,就是扩容。Pod扩容,然后是worker node扩容。ACK有node pool的概念。
除了ACK node pool扩容以外还有就是基于ECI扩容,通过Knative和虚拟节点组件使用弹性容器实例ECI(Elastic Container Instance),实现按需使用资源。在通过ECI进行扩容的场景中,免去了购买ECS实例,添加worker节点的过程。具体方法就是安装ack-virtual-node插件和安装部署virtual-kubelet-autoscaler(选择目标集群)。
相对于node pool的方式,ECI可以在不到1分钟内实现物理workernode的扩容,根据Prometheus监控显示,从17:35:13,开始调度,到17:35:41拉取镜像,再到17:36:15运行,在1分钟(考虑到监控采样周期15s,应该不到1分钟)内实现扩容。而node pool的方式大约需要6分钟,从扩容节点到最后一个pod创建完成。
删除实验环境:
PS:如果没有自动回收的,请手动回收。
参考链接:https://bpstudio.console.aliyun.com/教程链接:https://edu./course/21740.html
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~