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

71 阅读1分钟

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

1. Kubernetes简介

0.1. 为什么要Kubernetes

image.png

0.1. Kubernetes是什么

image.png

1.1. Kubernetes核心概念

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

image.png

1.1. Kubernetes核心概念 - Pod

image.png

1.1. Kubernetes核心概念 - Volume/PVC/PV/StorageClass

image.png

1.1. Kubernetes核心概念 - Deployment

image.png

1.1. Kubernetes核心概念 - StatefulSet

image.png

1.1. Kubernetes核心概念 - Node

image.png

1.2. Kubernetes设计准则

image.png

1.3. Kubernetes 架构

image.png

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

image.png

1.5. Kubernetes 核心功能

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

2. 资源管理

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. 调度

3.1. 资源申请

image.png

image.png

3.2. 调度流程

image.png

image.png

3.4. 示例

3.4.1. 示例 - MySQL

image.png

image.png

3.4.1. 示例 - WordPress

image.png

image.png

4. 优化实践

4.1. Kubernetes 还可以更好

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

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

image.png

4.2. 字节的一些工作 - 功能增强

image.png

4.2. 字节的一些工作 - 性能优化

吞吐:100 -> 5000

4.2. 字节的一些工作 - 调度质量

image.png

4.3. Kubernetes 和 YARN 的一些不同

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