深入理解K8S资源管理和调度|青训营笔记

52 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

这节课的重点内容包括四部分:Kubernetes简介、资源管理、调度、优化实践。

一、Kubernetes简介

特点:便携、可扩展、开源

目的:管理容器应用和服务

作用:声明式配置和自动化

1.1 Kubernetes核心概念

  • Pod
  • Deployment/StatefulSet
  • Volume/PVC/PV/StorageClass
  • Node

image.png

Pod

image.png

Volume/PVC/PV/StorageClass

image.png

Deoloyment

image.png

StatefulSet

image.png

Node

image.png

1.2 Kubernetes设计准则

  • Declarative>imperative:State your desired results,let the system actuate
  • Control loops:Observe,rectify,repeat
  • Simple>Complex:Try to do as little as possible
  • Modularity:Components,interfaces,&plugins
  • Legacy compatible:Meet users where they are,requiring apps to change is a non-starter
  • Open>Closed:Open Source,standards,REST,JSON,etc.

1.3 Kubernetes架构

  • Controller-Manager:提供一系列控制器,负责维护各种对象的生命周期
  • ETCD:持久化数据中心;维护集群中所有数据的有序性和一致性;事件机制同步数据变更
  • APIServer:对所有组件提供API接口;负责admission,鉴权等功能;提供后端etcd数据cacher,降低ETCD压力;结合ETCD压力,提供List-Watch机制
  • Scheduler:负责应用实例的调度,把Pod绑定到合适的Node
  • Kubelet:基于Pod声明,真正开始启动容器,负责容器生命周期维护
  • Kube-proxy:网络代理,负责维护节点网络规则,接管Pod出入流量

image.png

1.4 Kubernetes核心通信机制——List-Watch

image.png

1.5 Kubernetes核心功能

  • 服务发现和负载均衡
  • 存储编排
  • 自动发布,回滚
  • 自愈
  • 秘钥,配置管理
  • 资源管理,应用编排调度

二、资源管理

2.1 资源上报

image.png

2.2 节点资源样例

image.png

2.3 资源分配

计算资源

image.png

存储卷

image.png

2.4 状态维护

image.png

2.5 资源回收

计算资源

image.png

存储卷

image.png

三、调度

3.1 资源申请

image.png

image.png

image.png

3.2 调度流程

image.png

image.png

3.3 示例

MySQL+WordPress

3.3.1 MySQL

image.png

image.png

3.3.2 WordPress

image.png

image.png

示例

image.png

image.png

image.png

四、优化实践

4.1 Kubernetes还可以更好

  • 非原生资源的精细化管理能力
  • 动态资源接入,管理能力
  • 调度功能和性能
  • 调度质量

4.2 字节的一些工作

资源管理

  • Socket numa
  • Local Disk
  • 网卡
  • 内存带宽
  • GPU
  • 应用实时CPU负载
  • 机器实时CPU负载

功能增强

  • Gang
  • Job level affinity
  • 微拓扑调度
  • 资源预留,占位
  • 重调度
  • 丰富的排队策略

性能优化

吞吐:100->5000

调度质量

  • 实时负载均衡
  • 资源碎片
  • 应用亲和,反亲和

4.3 Kubernetes和Yarn的一些不同

  • 基本单位:Pod & Container
  • 资源管理:资源种类;扩展能力
  • 调度模式;Task->Node;Node->Task;
  • 系统设计:中心存储 & 节点缓存

总结

image.png