ACP雲原生容器工程師 - ASK應用場景

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流水線的解決方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章