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

138 阅读2分钟

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

  • Kubernetes简介
    • 什么是容器
      • 只有一个操作系统,基于docker构建自己的容器
      • 轻量便携
    • 定义
      • 特点
        • 便携,可扩展,开源
      • 目的
        • 管理容器应用和服务
      • 作用
        • 声明式配置和自动化
    • 核心概念
      • Pod
        • 最小单位
      • Deployment/StatefulSet
        • Pod集合
      • Volumn/PVC/PV/StorageClass
        • 存储空间
        • PVPVC一一绑定
      • Node
    • 设计准则
      • 声明式而不是命令式
      • 控制循环
      • 追求简单
      • 模块化
      • 向下兼容
    • 架构
      • 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出入流量
    • 核心机制
      • 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
        • 上限
    • 调度流程
      • 过滤节点
        • 成功
          • 给节点打分
          • 给节点排序
          • 选择最合适节点
        • 失败
          • 尝试抢占
            • 成功
              • 给节点排序
              • 选择最合适节点
            • 失败
              • 调度失败
  • 优化实践
    • 问题
      • 非原生资源的精细化管理能力
      • 动态资源接入,管理能力
      • 调度功能和性能
      • 调度质量
    • 资源管理
      • Socket numa
      • Local Disk
      • 网卡
      • 内存带宽
      • GPU
      • 应用实时CPU负载
      • 机器实时CPU负载
    • 功能增强
      • Gang
      • Job Level affinity
      • 微拓扑调度
      • 资源预留,占位
      • 重调度
      • 丰富的排队策略
    • 性能优化
    • 调度质量
      • 实时负载均衡
      • 资源碎片
      • 应用亲和,反亲和
  • KebernetesYarn的一些不同
    • 基本单位
      • Pod & Container
    • 资源管理
      • 资源种类
      • 扩展能力
    • 调度模式
      • Task -> Node
      • Node -> Task
    • 系统设计
      • 中心存储 & 节点缓存