k8s创建pod的流程

1、用户执行kubectl命令创建pod,根据kubeconfig的配置像kube-apiserver发送创建请求。
2、kube-apiserver存储pod数据到etcd,然后返回。剩下的操作异步执行。
3、kube-scheduler通过kube-apiserver查看未绑定的pod,尝试为pod分配主机。
4、kube-scheduler的调度分为两步:过滤掉不符合要求的主机,为符合要求的主机计算权重。权重的计算设计到一些整体优化策略,比如replicas分配到不同主机,使用负载较低的主机等。
5、kube-scheduler选择权重最高的主机,进行binding操作,结果存储到etcd中。kube-scheduler会调用kube-apiserver在etcd创建boundpod对象,描述在一个工作节点上绑定运行的所有pod信息。
6、kubelet服务定时和etcd同步boundpod信息,发现一个新的boundpod对象没有在本节点工作,则调用Docker来创建pod。