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

106 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第11天 今天我学习了K8S资源管理与调度的相关知识。\

K8S 简介\

K8S 全称 Kubernetes
Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
特点:便携,可扩展,开源
目的:管理容器应用和服务
作用:声明式配置和自动化

K8S 核心概念

  • Pod
    (1)最小的部署单元
    (2)是一组容器的集合
    (3)一个pod中的容器是共享网络的
    (4)一个pod的生命周期是短暂的
  • Deployment/StatefulSet
  • Volume/PVC/PV/StorageClass
  • Node 节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。

image.png

K8S 设计准则

  • Declarative > imperatie: State your desired, let the system actuate
  • Control loop: 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-starer
  • Open > Closed: Open source, standards, REST, JSON, etc

K8S 架构

image.png

K8S 通信机制

image.png

K8S 核心功能

  • 服务发现和负载均衡
  • 存储编排
  • 自动发布,回滚
  • 自愈
    (1)当容器失败时,会对容器进行重启
    (2)当所部署的 Node 节点有问题时,会对容器进行重新部署和重新调度
    (3)当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务
  • 密钥,配置管理
    (1)在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。
  • 存储编排
    (1)自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要。存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph等)、公共云存储服务 资源管理,应用编排调度

资源管理

  • CPU, Memory, HugePages, GPU
  • Socket, Numa, NIC
  • Ephemeral Storage, NFS, GlusterFS
  • RBD, Cinder
  • ByteDance Storage

资源上报

image.png

资源分配

计算资源

image.png

存储

image.png

状态维护

image.png

资源回收

计算资源

image.png

存储

image.png

调度

调度流程

image.png