这是我参与「第四届青训营 」笔记创作活动的的第11天 今天我学习了K8S资源管理与调度的相关知识。\
K8S 简介\
K8S 全称 Kubernetes
Kubernetes 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
特点:便携,可扩展,开源
目的:管理容器应用和服务
作用:声明式配置和自动化
K8S 核心概念
- Pod
(1)最小的部署单元
(2)是一组容器的集合
(3)一个pod中的容器是共享网络的
(4)一个pod的生命周期是短暂的 - Deployment/StatefulSet
- Volume/PVC/PV/StorageClass
- Node 节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
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 架构
K8S 通信机制
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
资源上报
资源分配
计算资源
存储
状态维护
资源回收
计算资源
存储
调度
调度流程