这是我参与「第四届青训营 」笔记创作活动的第15天
本次笔记内容是深入理解K8S资源管理和调度
主要从以下几个方面展开
- kubernetes简介
- 资源管理
- 调度 4.优化实践
01.kubernetes简介
介绍kubernetes核心功能及设计准则,架构,组件等。
Kubernetes简介
-
为什么要用kubernetes 依赖于宿主机去生存,方便管理。应用数量巨大怎么办脚本之间很难管理。
-
如何进行编排这些 -Kubernetes 的特点:便携,可拓展,开源
-
特点:便捷,可扩展,开源
-
目的:管理容器应用和服务
-
作用:声明式配置和自动化
Kubernetes核心概念
- Pod
- Deployment/StatefulSet
- Volume/PVC/PV/StorageClass
- Node
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.
Kubernetes核心功能
- 服务发现和负载均衡
- 存储编排
- 自动发布,回滚√自愈
- 秘钥,配置管理
- 资源管理,应用编排调度
02.资源管理
资源种类 资源上报 资源分配 资源维护 资源回收
03.调度
资源申请 调度流程
04.优化实践
- kubernetes可以更好的地方
- 字节的一些工作
- 和Yarn的一些不同
kubernetes可以更好的地方
- 非原生资源的精细化管理能力
- 动态资源接入,管理能力
- 调度功能和性能
- 调度质量
字节的一些工作-资源管理
- Socket numa
- Local Disk
- 网卡
- 内存带宽
- GPU
- 应用实时CPU负载
- 机器实时CPU负载
字节的一些工作一功能增强
- Gang
- Job level affinity
- 微拓扑调度
- 资源预留,占位
- 重调度
- 丰富的排队策略
kubernetes和Yarn的一些不同
基本单位
Pod & Container
资源管理
- 资源种类
- 扩展能力
调度模式:
- Task -> Node
- Node ->Task
系统设计 中心存储&节点缓存