这是我参与「第四届青训营 」笔记创作活动的的第17天
- Kubernetes简介
- 什么是容器
- 只有一个操作系统,基于docker构建自己的容器
- 轻量便携
- 定义
- 特点
- 便携,可扩展,开源
- 目的
- 管理容器应用和服务
- 作用
- 声明式配置和自动化
- 特点
- 核心概念
- Pod
- 最小单位
- Deployment/StatefulSet
- Pod集合
- Volumn/PVC/PV/StorageClass
- 存储空间
- PV与PVC一一绑定
- Node
- Pod
- 设计准则
- 声明式而不是命令式
- 控制循环
- 追求简单
- 模块化
- 向下兼容
- 架构
- ETCD
- 持久化数据中心
- 维护集群中所有数据的有序性和一致性
- 事件机制同步数据变更
- APIServer
- 对所有组件提供API接口
- 负责admission,鉴权等功能
- 提供后端etcd数据cacher,降低etcd压力
- 结合etcd,提供list-watch机制
- Controller-Manager
- 提供一系列控制器,负责维护各种对象的生命周期
- Node controller
- PV controller
- Deployment controller
- StatefulSet controller
- 提供一系列控制器,负责维护各种对象的生命周期
- Scheduler
- 负责应用实例的调度,把pod绑定到合适的Node
- Kubelet
- 基于Pod声明,真正开始启动容器,负责容器生命周期维护
- Kube-proxy
- 网络代理,负责维护节点网络规则,接管pod出入流量
- ETCD
- 核心机制
- List-Watch
- 提供增删改接口
- List-Watch
- 核心功能
- 服务发现和负载均衡
- 存储编排
- 自动发布、回滚
- 自愈
- 密钥,配置管理
- 资源管理,应用编排调度
- 什么是容器
- 资源管理
- 资源种类
- 计算
- CPU,Memory,HugePages,GPU
- Socket,Numa
- 存储
- Ephemeral Storage,NFS,GlusterFS,RBD,Cinder
- ByteDance Storage(FS,Block)
- 计算
- 资源上报
- CAdvisor Manager
- 资源分配
- Cgroup Manager
- 存储卷
- Controller-manager
- 状态维护
- 存储卷管理
- PV controller
- Protection controller
- Attach/Detach controller
- Volumn manager
- 计算资源管理
- Cgroup manager
- Device manager
- Eviction manager
- 存储卷管理
- 资源回收
- 资源种类
- 调度
- 资源申请
- request
- 底线
- limit
- 上限
- request
- 调度流程
- 过滤节点
- 成功
- 给节点打分
- 给节点排序
- 选择最合适节点
- 失败
- 尝试抢占
- 成功
- 给节点排序
- 选择最合适节点
- 失败
- 调度失败
- 成功
- 尝试抢占
- 成功
- 过滤节点
- 资源申请
- 优化实践
- 问题
- 非原生资源的精细化管理能力
- 动态资源接入,管理能力
- 调度功能和性能
- 调度质量
- 资源管理
- Socket numa
- Local Disk
- 网卡
- 内存带宽
- GPU
- 应用实时CPU负载
- 机器实时CPU负载
- 功能增强
- Gang
- Job Level affinity
- 微拓扑调度
- 资源预留,占位
- 重调度
- 丰富的排队策略
- 性能优化
- 调度质量
- 实时负载均衡
- 资源碎片
- 应用亲和,反亲和
- 问题
- Kebernetes和Yarn的一些不同
- 基本单位
- Pod & Container
- 资源管理
- 资源种类
- 扩展能力
- 调度模式
- Task -> Node
- Node -> Task
- 系统设计
- 中心存储 & 节点缓存
- 基本单位