kube-scheduler维护缓存
k8s v1.15.0
调度缓存作用

1. 保证调度过程中,看到的快照(缓存信息拷贝一份)里面node信息前后一致。
2. 调度过程中,不查询kube-apiserver,提升性能。
3. pod走完Scheduling Cycle时,进入异步Binding Cycle前,预分配node资源给这个pod(Binding Cycle失败时会撤销预分配),避免其他pod使用同一份node资源。
缓存建立过程
1. list/watch pod和node等资源。
缓存更新过程
1. 在Scheduling Cycle中,调用AssumePod方法预占资源(后续动作遇到错误机会调用ForgetPod方法释放资源);在Binding Cycle中,调用FinishBinding方法完成最终绑定。
2. 在Binding Cycle中,pod Bind默认超时是30秒。Cache基于单个协程定时1秒清理Bind超时的pod,释放资源。
快照更新过程
1. 每次调度时,获取最新快照(只拷贝更大generation的资源对象)。
浙公网安备 33010602011771号