k8s-pod创建原理流程
2019-11-29 15:03:34 7 举报
kubectl 创建Pod 背后到底发生了什么?
作者其他创作
大纲/内容
26
查询etcd中api组并调用
33
34
否
11
创建pause容器
14
4
更新Pod资源中的字段NodeNameannotationPodScheduled.status
ReplicaSet Controller检查新 ReplicaSet 的状态
启用Deployment Controller
反序列化Binding对象
通过Authentication验证
23.1:并更新到etcd
40
Container
38
35
资源合法性验证:------------------------------资源类型 | 镜像格式 | 部署审计 | dry run
41
37
为 Pod 创建相应的数据目录,包括:Pod 目录 (通常是 /var/run/kubelet/pods/<podID>);Pod 的挂载卷目录 (<podDir>/volumes);Pod 的插件目录 (<podDir>/plugins)
24
创建业务容器
准入处理admit handlers
15
运行Hook容器探测:执行Exec和HTTP请求判断
删除HTTP Header Authorization-------------------------------添加用户信息到context
认证失败返回结果
kubectl命令:kubectl run nginx --image=nginx --replicas=3
44
4.1
18
29
启动业务容器
Network
反序列化Pod数据
CNI(容器网络接口)
6
通过RPC调用CRI
写入ETCD键格式<namespace>/<name>
与期望匹配
发送kubectl HTTP请求到api-server
通过Cgroup进行QoS
授权(Authorization)-----------------------------------Webhook | RBAC ABAC | Node
认证成功
10
Scheduler组件
是
更新ReplicaSet的status
32
7
27
Hostname
CRI(容器运行时接口)
创建ContainerConfig数据结构
分片IP地址
IPC
更新Deployment的status
ETCD组件
43
20
19
9
31
21
30
25
3
Kuberlet组件
认证(Authentication)-------------------------------X509 | bearer token | basicauth handler-------------------------------
协商API组和API版本
kubelet组件每隔20秒向api-server查询pod,过滤 NodeName 与自身所在节点匹配的 Pod 列表,一旦获取到了这个列表,它就会通过与自己的内部缓存进行比较来检测差异,如果有差异,就开始同步 Pod 列表。
封装客户端kubectl HTTP请求
创建或调整ReplicaSet-------------------------------分配 label selector
认证失败
Pull image
8
添加元数据-----------------------------容器类型日志路径sandbox ID
17
42
36
生成PodStatus对象
13
生成运行时对象(runtime.Object)
45
返回Json
调整Pod副本数遵循Owner References规则
先进行预选策略评估候选节点后创建Binding对象
客户端认证---------------------------用户名密码:basic认证---------------------------x509证书:tls.TLSConfig---------------------------bearer tokens | OIDC---------------------------基础认证http header:Authorlzation---------------------------kubeconfig
pause容器
46
Controller Manager组件
填充Pod.Spec
调度到指定Node节点
23
16
kubectl客户端命令接口
12
资源初始化Sidecar | Volume | Secret
准入控制(Admission)插件------------------------------------SecurityContextDeny------------------------------------ResourceQuota------------------------------------LimitRanger-----------------------------------ServiceAccount
28
5
22
创建pause容器(承载共享IPC,Network,PID)
Api-Server组件
2
39
收藏
收藏
0 条评论
下一页