天天看點

容器開啟資料服務之旅系列(三):Kubernetes QoS助力線上運用與大資料離線運用的混部容器開啟資料服務之旅系列(三)

容器開啟資料服務之旅系列(三)

(三):Kubernetes QoS助力線上運用與大資料離線運用的混部

概述

本文是2018年大資料峰會上的一些分享,關于線上業務,離線業務在ACK(阿裡雲容器服務Kubernetes)的平台上通過對namespace, cgroup, quota的靈活組合完成線上,離線業務場景的混合部署,來提高總體資源的使用率,以及支資源限制動态配置設定調整,來伸縮離線部分的資源水位。結合HPA和資源監控,可以完成自動化的離線資源擠出。

線上業務 Web 應用資料庫

QoS class: Guaranteed:

limit = request

離線業務 Spark/MapReduce/Deep-learning

QoS class:Burstable

request < limit

容器開啟資料服務之旅系列(三):Kubernetes QoS助力線上運用與大資料離線運用的混部容器開啟資料服務之旅系列(三)

通過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           -           
容器開啟資料服務之旅系列(三):Kubernetes QoS助力線上運用與大資料離線運用的混部容器開啟資料服務之旅系列(三)

使用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           -       -           
容器開啟資料服務之旅系列(三):Kubernetes QoS助力線上運用與大資料離線運用的混部容器開啟資料服務之旅系列(三)