容器開啟資料服務之旅系列(三)
(三):Kubernetes QoS助力線上運用與大資料離線運用的混部
概述
本文是2018年大資料峰會上的一些分享,關于線上業務,離線業務在ACK(阿裡雲容器服務Kubernetes)的平台上通過對namespace, cgroup, quota的靈活組合完成線上,離線業務場景的混合部署,來提高總體資源的使用率,以及支資源限制動态配置設定調整,來伸縮離線部分的資源水位。結合HPA和資源監控,可以完成自動化的離線資源擠出。
線上業務 Web 應用資料庫
QoS class: Guaranteed:
limit = request
離線業務 Spark/MapReduce/Deep-learning
QoS class:Burstable
request < limit
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukjZiFmMkNmN3U2Y0YWM0MmM0EjZyYmMiFDM5ETO2cDNvwVbvNmLj5Wat4Wd5lGbh5iY1BXLn1WauU3bop3ZuFGat42YucWbp1iMhRXYvw1LcpDc0RHaiojIsJye.png)
通過namespace的Guaranteed QoS設計,實作線上業務 Web 應用以及資料庫的性能保證
qosClass: Guaranteed
resources:
requests:
cpu: 300m
memory: 512Mi
limits:
cpu: 300m
memory: 512Mi
使用命名空間(cgroup)完成隔離和資源控制
cpu: 12
memory: 16Gi
Name: online
Labels: <none>
Annotations: <none>
Status: Active
Resource Quotas
Name: quota
Resource Used Hard
-------- --- ---
configmaps 1 100
cpu 550m 12
memory 768Mi 16Gi
persistentvolumeclaims 1 100
pods 2 100
replicationcontrollers 0 10
requests.storage 20Gi 1024G
secrets 3 100
services 2 10
Resource Limits
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu - - 100m 4 -
Container memory - - 256Mi 16Gi -
使用namespace的Burstable QoS設計,實施離線大資料運算的資源可伸縮控制
QoS Class: Burstable
resources:
requests:
cpu: "100m"
memory: "512Mi"
命名空間隔離和資源控制
cpu: 4
memory: 32Gi
Name: batch
Labels: <none>
Annotations: <none>
Status: Active
Resource Quotas
Name: quota
Resource Used Hard
-------- --- ---
configmaps 0 100
cpu 400m 4
memory 2Gi 32Gi
persistentvolumeclaims 0 100
pods 4 100
replicationcontrollers 0 10
requests.storage 0 1024G
secrets 1 100
services 2 10
Resource Limits
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu - - 100m 1 -
Container memory - - 256Mi 16Gi - -