标签:mis watch 命令 car 定义 run 解析 inf ima
1.1 kubelet client 端执行kubelet create pod命令提交post kubelet apiserver请求1.2 apiserver 监听接受到请求
1.2.1 对请求进行、解析、认证、授权、超时处理、审计通过
1.2.2 pod请求事件进入MUX和route流程,apiserver会根据请求匹配对应pod类型的定义,apiserver会进行一个convert工作,将请求内容转换成super version对象
1.2.3 apiserver会先进行admission() 准入控制,比如添加标签,添加sidecar容器等和校验个字段合法性
1.2.4 apiserver将验证通过的api对象转换成用户最初提交的版本,进行序列化操作,并调用etcd api保存apiserver处理pod事件信息,apiserver把pod对象add到调度队列中
1.3.1schedule调度器会通过监听apiserver add到pod对象队列,
1.3.2调度器开始尝试调度,筛选出适合调度的节点,并打分选出一个最高分的节点
1.3.3 调度器会将pod对象与node绑定,调度器将信息同步apiserver保存到etcd中完成调度
1.4.1 节点kubelet通过watch监听机制,监听与自己相关的pod对象,kubelet会把相关pod信息podcache缓存到节点内存
1.4.2 kubelet通过检查该pod对象在kubelet内存状态,kubelet就能够判断出是一个新调度pod对象
1.4.3 kubelet会启动 pod update worker、单独goroutine处理pod对象生成对应的pod status,检查pod所生命的volume、网络是否准备好
1.4.4 kubelet调用docker api 容器运行时CRI,发起插件pod所定义容器Container Runtime Interface, CRI
请求
1.4.5 docker 容器运行时比如docker响应请求,然后开始创建对应容器
标签:mis watch 命令 car 定义 run 解析 inf ima
原文地址:https://blog.51cto.com/zjunzz/2549946