当用户向 Kubernetes
提交了一个创建 deployment
的请求后,Kubernetes
从接收请求直至创建对应的 pod
运行这整个过程中都发生了什么呢?
在搞清楚从 deployment
提交到 pod
运行整个过程之前,我们有先来看看 Kubernetes
的集群架构:
上图与下图相同:
如图所示,k8s 集群分为 control plane
控制平面和 node
节点。control plane
控制平面(也称之为主节点)主要包含以下组件:
kube-api-server
: 顾名思义,负责处理所有 api,包括客户端以及集群内部组件的请求。
etcd
: 分布式持久化存储、事件订阅通知。只有kube-api-server
直接操作etcd
,其它所有组件都是与kube-api-server
进行相互。
scheduler
: 处理 pod 的调度,将 pod 绑定到具体的 node 节点。
controller manager
: 控制器,处理各种资源对象。
cloud controller manager
: 对接云服务商的控制器。
node
节点,专门部署用户的应用程序(与控制平面隔离,避免影响到 k8s 的核心组件),主要包含以下组件:
kubelet
: 管理节点上的 pod 以及状态检查和上报。
kube-proxy
: 进行流量的路由转发(目前是通过操作节点的 iptables 或者 ipvs 实现)。
CRI
: 容器运行时接口。
从 Deployment
到 Pod
的整个过程如下图所示:
kube-api-server
请求发送到 kube-api-server
,然后会进行认证、鉴权、变更、校验等一系列过程,最后将 deployment 的数据持久化存储至 etcd
。
在这个过程我们可以通过 mutation admission 的 webhook 自主地对资源对象进行任意的变更,比如注入 sidecar 等等。
controller manager
组件针对不同的资源对象有不同的处理部分。针对 Deployment
,由于其并不直接管理 Pod
,而是 Deployment
管理 ReplicaSet
,ReplicaSet
再管理 Pod
:
因此其中涉及到 controller manager
中的两个部分:
deployment controller
replicaset controller
(1) 先是 deployment controller
监听到 deployment
的创建事件,然后进行相关的处理,最后创建 replicaset
。
(2) 然后 replicaset controller
监听到 replicaset
的创建事件,进行相关处理后,最后创建 pod
。
scheduler
接受到 pod 需要调度的事件后,进行一系列调度逻辑处理,最后选择一个合适的 node 节点,将 pod 绑定到这个节点上(所谓的节点调度在这里只是修改 pod 数据,对其中的 nodeName 进行赋值)。具体的调度算法比较复杂,涉及强制性调度、亲和与反亲和、污点和容忍、以及硬件资源计算、优先级等等,本文不做展开。
调度完成后,pod
被绑定的 node 节点上的 kubelet
同样通过 kube-api-server
会接受到相应的事件,然后 kubelet
会进行 pod
的创建。在这个过程中 kubelet
会分别调用 CRI
、CNI
、CSI
:
CRI
(Container Runtime Interface): 容器运行时接口,CRI
插件负责执行拉取镜像、创建、删除容器等操作。CRI
的几种常用插件:
containerd
CRI-O
Docker Engine
CNI
(Container Network Interface): 容器网络接口,CNI
插件负责给 pod 分配 IP 地址,确保 pod 能够与集群内的其它 pod 进行通信。CNI
的几种常用插件:
Cilium
Calico
CSI
(Container Storage Interface): 容器存储接口,CSI
插件负责与外部存储提供者通信,执行卷的附加、挂载等操作。
所谓的接口其实只是定义了通信的规范或者标准(使用的是 grpc
协议),具体的实现则是交给了插件。至此,Kubernetes 从创建 deployment 到 pod 运行的全过程就是这样了。
参考资料:
https://kubernetes.io/docs/concepts/architecture/
https://kubernetes.io/docs/concepts/scheduling-eviction/
https://kubernetes.io/docs/setup/production-environment/container-runtimes/
https://kubernetes.io/docs/tasks/administer-cluster/network-policy-provider/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308914.html
如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!玻璃钢生产厂家北京多彩玻璃钢雕塑多少钱玻璃钢人物运动雕塑定做余杭商场美陈常用商场美陈哪家好玻璃钢室外镂空雕塑生产厂家品质玻璃钢人物雕塑供应商马鞍山动物玻璃钢雕塑合肥卡通玻璃钢雕塑佛山玻璃钢外壳雕塑北京公园玻璃钢雕塑价格划算的玻璃钢人物雕塑商场玻璃钢雕塑规格杭州玻璃钢楼盘景观雕塑报价泰州玫红色玻璃钢花盆晋江玻璃钢名人雕塑阳江玻璃钢车雕塑商场绿色植物美陈方案南充玻璃钢十二生肖雕塑超市圣诞节商场美陈四川商场节庆美陈雕塑摆件定制河南户外商场美陈价钱鹰潭商场美陈拉丝玻璃钢雕塑择优推荐赣州玻璃钢雕塑厂家品牌廊坊玻璃钢雕塑设计玻璃钢雕塑分类市场前景如何沧州温州玻璃钢人物雕塑报价云南标识标牌玻璃钢人物雕塑河北超市商场美陈销售河南标牌校园玻璃钢景观雕塑加工香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万