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

116 阅读2分钟

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

本次笔记内容是深入理解K8S资源管理和调度

主要从以下几个方面展开

  1. kubernetes简介
  2. 资源管理
  3. 调度 4.优化实践

01.kubernetes简介

介绍kubernetes核心功能及设计准则,架构,组件等。

Kubernetes简介

  • 为什么要用kubernetes 依赖于宿主机去生存,方便管理。应用数量巨大怎么办脚本之间很难管理。

  • 如何进行编排这些 -Kubernetes 的特点:便携,可拓展,开源

  • 特点:便捷,可扩展,开源

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

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

Kubernetes核心概念

  1. Pod
  2. Deployment/StatefulSet
  3. Volume/PVC/PV/StorageClass
  4. Node

QQ图片20220818222716.png

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可以更好的地方

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

字节的一些工作-资源管理

  1. Socket numa
  2. Local Disk
  3. 网卡
  4. 内存带宽
  5. GPU
  6. 应用实时CPU负载
  7. 机器实时CPU负载

字节的一些工作一功能增强

  1. Gang
  2. Job level affinity
  3. 微拓扑调度
  4. 资源预留,占位
  5. 重调度
  6. 丰富的排队策略

kubernetes和Yarn的一些不同

基本单位

Pod & Container

资源管理

  1. 资源种类
  2. 扩展能力

调度模式:

  1. Task -> Node
  2. Node ->Task

系统设计 中心存储&节点缓存