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流水线的解决方案

posted on 2023-03-16 01:28  eryoung2  阅读(50)  评论(0编辑  收藏  举报