大数据笔记|青训营笔记

78 阅读2分钟

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

本节课程主要分为 4 个方面:

  1.Kubernetes简介
  2.资源管理
  3.调度
  4.优化实践
什么是容器?

屏幕截图 2022-08-16 225200.png

一.Kubernetes简介

 1.1.为什么要Kubernetes?
           ▨ 应用数量巨大怎么办?
           ▨ 如何编排?
           ▨ 出了问题如何恢复?
     1.1.1.Kubernetes是什么?
             ▨ 特点:便携,可扩展,开源
             ▨ 目的:管理容器应用和服务
             ▨ 作用:声明式配置和自动化
     1.1.2.Kubernetes核心概念
              ▨ Pod
              ▨ Deployment/StatefulSet
              ▨ Volume/PVC/PV/StorageClass
              ▨ Node                  

image.png

 1.2.Kubernetes设计准则
          ▨ Declarative>imperative
          ▨ Control loops
          ▨ Simple>Complex
          ▨ Modularity
          ▨ Legacy compatible
          ▨ Open>Closed
1.3.Kubernetes架构

image.png

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

屏幕截图 2022-08-16 225528.png

 1.5.Kubernetes核心功能
           ▨ 服务大仙和负载均衡
           ▨ 存储编排
           ▨ 自动发布,回滚
           ▨ 自愈
           ▨ 秘钥,配置管理
           ▨ 资源管理,应用编排调度

二.资源管理

 2.1.资源上报            

屏幕截图 2022-08-16 225739.png

 2.2.节点资源样例
           ▭ Capacity
           ▭ Allocatable
 2.3.资源分配
          ▭ 计算资源
               ◎ Kubelet->cgroup manager->cpu, memory...
               ◎ Kubelet->device manager->extended resources
          ▭ 存储卷
              ◎ Controller manager->provisioner->attacher->mounter
 2.4.状态维护
         ▭ 存储卷管理
              ◎ kubelet/cgroup manager/device manager/evictioner manager->cpu, memory, extended resources
         ▭ CPU,Me                     
              ◎ PV controller -> PV/PVC
 2.5.资源回收
        ▭ 计算资源
                ◎ Kubelet -> cgroup manager -> cpu, memory...
                ◎ Kubelet -> device manager -> extended resources
        ▭ 存储卷
              ◎ Controller manager->unmounter->detacher->deleter

三.调度

 3.1.资源申请
        ✔资源申请:
              request、limit
        ✔ 其他约束:
              ◎ affinity/anti-affinity
              ◎ Label selector
              ◎ Taint & toleration
              ◎ Image locality
              ◎ Bin-packing/Load balancing...
 3.2.调度流程
         ✔ 开始
         ✔ 过滤节点
         ✔ 打分
         ✔ 排序
         ✔ 选择适合的节点             

image.png

四.优化实践

  4.1.Kubernetes还可以更好
        ◼ 非原生资源的精细化管理能力
        ◼ 动态资源接入,管理能力
        ◼ 调度功能和性能
        ◼ 调度质量
  4.2.字节的一些工作-资源管理
          ◎ Socket nume
          ◎ Local Disk
          ◎ 网卡
          ◎ 内存宽带
          ◎ GPU
          ◎ 应用实时CPU负载
          ◎ 机器实时CPU负载
      4.2.1.性能优化 & 功能增强
              ◎ Gang
              ◎ 应用级别亲和性约束能力支持;
              ◎ 微拓扑调度能力支持;
              ◎ 资源预留;
              ◎ 系统重构: 分布式系统
      4.2.2.调度质量
              ◎ 重调度;
              ◎ 业务上下游亲和性策略;
              ◎ 实时负载均衡策略;
              ◎ 碎片整理,优化等
  4.3.Kubernetes和Yarn的一些不同
          ◼ 基本单位:Pod&Container
          ◼ 资源管理:
                ◎ 资源种类
                ◎ 扩展能力
          ◼ 调度模式:
                ◎ Task->Node
                ◎ Node->Task
          ◼ 系统设计:中心存储&节点缓存