-
list-watch
k8s集群当中,通过list-watch的机制进行每个组件的协作,保持数据同步。每个组件之间的解耦。
Kubectl配置文件,向apiserver发送命令--------apiserver把命令发送到各个组件。
创建一个pod 叫 nginx 镜像是nginx1.22
创建成功之后,kubectl get pod kubectl describe pod nginx --------->etcd的数据库当中。
list-watch -----会在每一步把监听的消息(apiserver:6443)----controller manager,scheduler
Kubeelet etcd都会监听。
Apiserver:64443端口。
如何来吧pod分配到node节点。
2,调度的过程和策略:
Scheduler是k8s集群的调度器,把pod分配到集群的节点。
以下几个问题:
- 公平 每个节点都能够分配资源
- 资源高效利用:集群当中的资源可以被最大化使用。
- 效率:调度的性能要搞好,能够尽快的完成大批量的pod的调度工作。
- 灵活:允许用户根据自己的需求,控制和改变调度的逻辑。
Scheduler是一个单独运行的程序,启动之后就会一直监听apiserver,获取报文中的字段:spec.nodeName
创建pod时候,为每个pod创建一个binding,表示该往哪个节点上部署。
创建pod的节点时。有两个策略。先执行预算策略,在执行优先策略,这两部的操作都必须成功,否则立刻返回报错。也就是说,部署的node必须满足这两个策略。