ASK在线业务弹性伸缩的概况
弹性伸缩特性
-
特性
-
根据业务需求和策略
-
经济地自动调整弹性计算资源
-
-
维度
-
调度层弹性:修改负载的调度容量变化
-
资源层弹性:补充ECI和集群容量规划
-
-
场景
-
在线业务弹性
-
大规模计算训练
-
深度学习或共享GPU的训练与推理
-
定时周期性负载变化
-
容器水平伸缩
-
容器水平伸缩制作步骤
-
查看应用详情,单击容器组水平伸缩,可在部署的详情中查看伸缩组信息
-
在实际使用环境中,应用汇根据CPU负载进行伸缩
容器定时伸缩
-
kubernetes-cronhpa-controller: 按照类似Crontab的策略,定时对容器服务进行扩缩容
-
kubernetes-cronhpa-controller包括三项参数
-
scaleTargetRef: 制定扩缩容对象
-
excludeDates: 日期数组,分、时、日、月、周、要做的事情
-
jobs: 支持在一个spec中设定多个cronhpa任务,其中name为必填项
-
-
kubernetes-cronhpa-controller组件安装
指标容器水平伸缩
-
alibaba-cloud-metrics-adapter: 由检测指标来直到集群的扩缩容
大数据Spark on Kubernetes
Apache Spark概述
-
应用角色
-
数据分析领域快速构建计算框架
-
大数据和机器学习工作负载
-
-
应用架构
-
Spark SQL/DF: 处理结构化和半结构化数据
-
Spark Streaming: 处理实时流数据
-
Mlib: 机器学习库
-
GraphX: 图形计算库
-
Apache Spark Core API: 应用程序的平台
-
ASK运行Spark的优势
-
在Kubernetes上运行Spark工作负载
-
应用的快速部署
-
集成化生命周期管理
-
解决版本匹配、兼容和依赖问题
-
重用基础架构、减少运维成本
-
支持多租户和用户力度的资源调度
-
基于Kubernetes的权限控制
-
-
在ASK集群上运行Spark工作负载
-
按需按量创建Pod
-
结束后停止计费
-
无需为Spark计算任务预留计算资源
-
无须担心集群计算力扩容问题
-
运行Apache Spark的工具
-
Spark Operator
-
由Google官方支持的产品spark-on-k8s-operator
-
在Kubernetes上像其他工作负载一样用通用的方式方便地运行Spark应用
-
使用Kubernetes custom resource来配置、运行Spark应用,并展现其状态
-
-
Alluxio
-
面向云的数据分析和人工智能的开源的数据编排技术
-
为数据驱动型应用和存储系统构建桥梁,是数据更容易被访问
-
-
TPC-DS Benchmark
- 社区支持的第三方性能压测工具,协助确定解决方案的工业标准
Knative Serverless应用
Knative简介
-
角色
-
基于Kubernetes的Serverless解决方案
-
标准化Serverless技术架构
-
简化学习成本
-
-
组件
-
Build: 源到容器的构建和编排
-
Event: 消息传递层,事件交付管理
-
Serving: 请求计算,基于负载自动伸缩
-
-
优势
-
便利性
-
标准化
-
服务间解耦
-
生态成熟
-
自动伸缩
-
应用监控
-
-
Knative虽然开源,但是会称为Serverless的实施标准
ASK Knative相比社区版优势
ASK Knative最佳实践
-
观测服务的QPS、RT和Pod扩缩容趋势
-
配置Logstore
-
配置QPS统计
-
配置RT统计
-
配置Pod扩缩容趋势统计
-
观测服务运行状况
-
-
观测服务的CPU和Memory使用情况
-
ASK集群已开通Knative功能
-
集群已开通阿里云Prometheus监控功能
-
配置Prometheus监控目标ASK集群
-
CI/CD流水线解决方案
方案背景
-
场景需求
-
基于Jenkins构建自动化CI/CD集群系统
-
集群资源合理利用,控制成本
-
集群高可用性需求
-
集群资源快速弹性伸缩
-
-
方案优势
-
高可用服务
-
自动弹性伸缩,资源合理应用
-
可扩展性好
-
-
解决问题
-
集群Master节点单点故障
-
集群资源利用率低
-
资源集群可扩展性差
-
-
方案流程
-
Git源码上传
-
Jenkins自动构建
-
K8s测试环境
-
Registry镜像存储
-
生产环境部署
-
方案架构
-
服务高可用
- 避免Master单点故障导致集群流程不可用
-
弹性伸缩
-
每次运行Job时,自动构建Jenkins Slave
-
Job完成之后,自动注销并删除容器
-
资源自动释放,节省成本
-
-
资源合理应用
-
动态分配Slave到空闲节点
-
降低出现由于节点资源限制的排队等待情况
-
-
扩展性好
-
集群资源严重不足时,可以快速添加节点
-
降低集群资源不足导致Job排队等情况
-
事件概要
小结
-
ASK弹性伸缩特性
-
ASK弹性伸缩部署流程
-
Apache Spark在ASK上的部署方案
-
ASK Knative的优势和最佳实践
-
ASK上部署CI/CD流水线的解决方案