Pod的创建过程
Pod是kubernetes中最小的调度单位,里面包含多个容器,也是真正运行你服务的仓库,同一个pod中容器之间资源共享(IP 、网络、cpu、mem、挂载目录等)。
1. 准备一个yaml(RC/deployment)文件
2. 使用命令执行kubectl create –f yaml
- 首先进行认证,因kubectl 会调用mater-api创建对象的接口
- 认证通过后将yaml信息交给master-manger-controller,controller根据配置信息将要创建资源对象(pod)放到等待队列中。
- 这个时候需要一个承上启下的组件, Scheduler根据等待队列中的资源对象将其分配到合适的node节点,分配过程需要两层调度:预选调度和优选调度
预选调度:一般根据资源对象的配置信息进行筛选。例如NodeSelector、HostSelector和节点亲和性等。
优选调度:根据资源对象需要的资源和node节点资源的使用情况,为每个节点打分,然后选出最优的节点创建资源对象(pod)。
- 上面组件干的活都是领导层的决策,kubelet组件才是实施者,kubelet接到任务后根据资源的配置信息(初始化volume、分配IP、下载镜像等),创建容器、启动服务
- 检查pod的健康状态,直至状态为running
- Controller 一直不停的监工,为让节点和资源异常时快速恢复。