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

146 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第17天,以下是我的课堂笔记。 本次课程主要分为四个大板块:
1. Kubernetes简介
2. 资源管理
3. 调度
4. 优化实践

1. Kubernetes简介

1.1 为什么要Kubernetes ?

√应用数量巨大怎么办?
√如何自动部署?
√如何编排?
√出了问题如何恢复?

1.2 Kubernetes 特点

特点:便携,可扩展,开源
目的:管理容器应用和服务
作用:声明式配置和自动化

1.3 Kubernetes核心概念

image.png

1.4 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.5 Kubernetes架构

image.png

1.6 Kubernetes核心通信机制- List-Watch

image.png

1.7 Kubernetes核心功能

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

2.资源管理

2.1 资源上报

image.png

2.2节点资源样例

· Capacity:
bytedance.com/socket: 4
nvidia.com/gpu: 8
cpu:96
ephemeral-storage:1729025612Ki
memory:394587632Ki
pods:110\

· Allocatable:
bytedance.com/socket: 4
nvidia.com/gpu: 8
cpu:94
ephemeral-storage: 1655625292Ki
memory: 390681382Ki
pods: 110

2.3 资源分配

image.png

image.png

2.4 状态维护

image.png

2.5资源回收

image.png

image.png

3. 调度

3.1 资源申请

image.png

image.png

image.png

3.2调度流程

image.png

image.png

4.优化实践

4.1 Kubernetes还可以更好

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

4.2字节的一些工作

资源管理

image.png 工作增强

image.png 性能优化

image.png
调度质量

image.png

4.3 Kubernetes和Yarn的一些不同

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