主流架构
Device Plugin:K8s制定设备插件接口规范,定义异构资源的上报和分配,设备厂商只需要实现相应的API接口,无需修改kubelet源码即可实现对其他硬件设备的支持。
Extended Resource:Scheduler可以根据Pod的创建删除计算资源可用量,而不再局限于CPU和内存的资源统计,进而将有特殊资源需求的Pod调度到相应的节点上。
通过Device Plugin 异构资源调度流程如下:
- Device plugin 向kubelet上报当前节点资源情况
- 用户通过yaml文件创建负载,定义Resource Request
- kube-scheduler根据从kubelet同步到的资源信息和Pod的资源请求,为Pod绑定合适的节点
- kubelet监听到绑定到当前节点的Pod,调用Device plugin的allocate接口为Pod分配设备
- kubelet启动Pod内的容器,将设备映射给容器