当前位置:首页 > 科技  > 软件

Kubernetes 从提交 deployment 到 pod 运行的全过程

来源: 责编: 时间:2024-01-03 11:35:54 147观看
导读当用户向 Kubernetes 提交了一个创建 deployment 的请求后,Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢?kubernetes 架构简述在搞清楚从 deployment 提交到 pod 运行整个过程之前,我们有先

当用户向 Kubernetes 提交了一个创建 deployment 的请求后,Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢?xea28资讯网——每日最新资讯28at.com

kubernetes 架构简述

在搞清楚从 deployment 提交到 pod 运行整个过程之前,我们有先来看看 Kubernetes 的集群架构:xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

上图与下图相同:xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

如图所示,k8s 集群分为 control plane 控制平面和 node 节点。xea28资讯网——每日最新资讯28at.com

control plane 控制平面(也称之为主节点)主要包含以下组件:xea28资讯网——每日最新资讯28at.com

  • kube-api-server: 顾名思义,负责处理所有 api,包括客户端以及集群内部组件的请求。
  • etcd: 分布式持久化存储、事件订阅通知。只有 kube-api-server 直接操作 etcd,其它所有组件都是与 kube-api-server 进行相互。
  • scheduler: 处理 pod 的调度,将 pod 绑定到具体的 node 节点。
  • controller manager: 控制器,处理各种资源对象。
  • cloud controller manager: 对接云服务商的控制器。

node 节点,专门部署用户的应用程序(与控制平面隔离,避免影响到 k8s 的核心组件),主要包含以下组件:xea28资讯网——每日最新资讯28at.com

  • kubelet: 管理节点上的 pod 以及状态检查和上报。
  • kube-proxy: 进行流量的路由转发(目前是通过操作节点的 iptables 或者 ipvs 实现)。
  • CRI: 容器运行时接口。

从 Deployment 到 Pod

从 Deployment 到 Pod 的整个过程如下图所示:xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

1. 请求发送到 kube-api-server

请求发送到 kube-api-server,然后会进行认证、鉴权、变更、校验等一系列过程,最后将 deployment 的数据持久化存储至 etcd。xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

在这个过程我们可以通过 mutation admission 的 webhook 自主地对资源对象进行任意的变更,比如注入 sidecar 等等。xea28资讯网——每日最新资讯28at.com

2. controller manager 处理

controller manager 组件针对不同的资源对象有不同的处理部分。xea28资讯网——每日最新资讯28at.com

针对 Deployment,由于其并不直接管理 Pod,而是 Deployment 管理 ReplicaSet,ReplicaSet 再管理 Pod:xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

因此其中涉及到 controller manager 中的两个部分:xea28资讯网——每日最新资讯28at.com

  • deployment controller
  • replicaset controller

(1) 先是 deployment controller 监听到 deployment 的创建事件,然后进行相关的处理,最后创建 replicaset。xea28资讯网——每日最新资讯28at.com

(2) 然后 replicaset controller 监听到 replicaset 的创建事件,进行相关处理后,最后创建 pod。xea28资讯网——每日最新资讯28at.com

3. scheduler 调度

scheduler 接受到 pod 需要调度的事件后,进行一系列调度逻辑处理,最后选择一个合适的 node 节点,将 pod 绑定到这个节点上(所谓的节点调度在这里只是修改 pod 数据,对其中的 nodeName 进行赋值)。xea28资讯网——每日最新资讯28at.com

具体的调度算法比较复杂,涉及强制性调度、亲和与反亲和、污点和容忍、以及硬件资源计算、优先级等等,本文不做展开。xea28资讯网——每日最新资讯28at.com

4. 节点 kubelet 处理

调度完成后,pod 被绑定的 node 节点上的 kubelet 同样通过 kube-api-server 会接受到相应的事件,然后 kubelet 会进行 pod 的创建。xea28资讯网——每日最新资讯28at.com

在这个过程中 kubelet 会分别调用 CRI、CNI、CSI:xea28资讯网——每日最新资讯28at.com

  • 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 协议),具体的实现则是交给了插件。xea28资讯网——每日最新资讯28at.com

至此,Kubernetes 从创建 deployment 到 pod 运行的全过程就是这样了。xea28资讯网——每日最新资讯28at.com

xea28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-56594-0.htmlKubernetes 从提交 deployment 到 pod 运行的全过程

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 彻底搞懂 JS 类型转换

下一篇: Nextpy席卷而来:Python Web开发的变革者,React生态直接应用

标签:
  • 热门焦点
  • 掘力计划第 20 期:Flutter 混合开发的混乱之治

    掘力计划第 20 期:Flutter 混合开发的混乱之治

    在掘力计划系列活动第20场,《Flutter 开发实战详解》作者,掘金优秀作者,Github GSY 系列目负责人恋猫的小郭分享了Flutter 混合开发的混乱之治。Flutter 基于自研的 Skia 引擎
  • 让我们一起聊聊文件的操作

    让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 多线程开发带来的问题与解决方法

    多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 得物宠物生意「狂飙」,发力“它经济”

    得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    iQOO Neo8系列或定档5月23日:首发天玑9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top