Pod的创建过程

Pod是kubernetes中最小的调度单位,里面包含多个容器,也是真正运行你服务的仓库,同一个pod中容器之间资源共享(IP 、网络、cpu、mem、挂载目录等)。

1.  准备一个yaml(RC/deployment)文件

2.  使用命令执行kubectl create  –f yaml

  1. 首先进行认证,因kubectl 会调用mater-api创建对象的接口
  2. 认证通过后将yaml信息交给master-manger-controller,controller根据配置信息将要创建资源对象(pod)放到等待队列中。
  3. 这个时候需要一个承上启下的组件,   Scheduler根据等待队列中的资源对象将其分配到合适的node节点,分配过程需要两层调度:预选调度和优选调度

预选调度:一般根据资源对象的配置信息进行筛选。例如NodeSelector、HostSelector和节点亲和性等。

优选调度:根据资源对象需要的资源和node节点资源的使用情况,为每个节点打分,然后选出最优的节点创建资源对象(pod)。

  1. 上面组件干的活都是领导层的决策,kubelet组件才是实施者,kubelet接到任务后根据资源的配置信息(初始化volume、分配IP、下载镜像等),创建容器、启动服务
  2. 检查pod的健康状态,直至状态为running
  3. Controller 一直不停的监工,为让节点和资源异常时快速恢复。

Pod的创建过程