在Kubernetes(K8s)中,Pod的创建过程通常包括以下步骤:

  1. 提交Pod定义

    用户通过kubectl命令行工具或者调用API Server接口,提交一个包含Pod配置信息的YAML或JSON文件。这个配置文件详细描述了Pod的元数据(如名称、标签等)、容器镜像、环境变量、端口映射、卷挂载以及其他运行时参数。

  2. 接收并验证请求

    Kubernetes API Server接收到创建Pod的请求后,会进行一系列的验证,确保提交的资源配置是有效的,并且符合集群的安全策略和准入控制规则。

  3. 持久化资源状态

    当配置信息验证成功后,API Server将Pod的规格信息写入etcd分布式存储系统中,这样集群的所有组件都能获取到最新的Pod创建请求。

  4. 调度Pod

    调度器(Scheduler)监听etcd中的事件,当发现新的未被调度的Pod时,它根据Pod的资源需求、节点标签选择器以及各种调度策略,为Pod选择合适的Node节点。

  5. 通知kubelet

    一旦调度完成,API Server会通知目标节点上的kubelet代理,告诉它应该在其管理的节点上启动一个新的Pod。

  6. kubelet初始化Pod

    kubelet接收到指令后,在本地执行Pod创建流程,包括:

    • 检查所需镜像是否已下载至本地,如果没有则从指定的镜像仓库拉取。
    • 创建命名空间、网络命名空间以及必要的网络设备和端点。
    • 根据Pod模板创建并启动容器,设置环境变量、挂载卷等。
    • 监控容器的状态,包括健康检查(Liveness Probe, Readiness Probe等)。
  7. 容器运行与监控

    容器运行后,kubelet持续监控其生命周期和资源使用情况。如果容器失败或不符合预期状态,kubelet会按照Pod定义中的重启策略进行处理。

  8. 更新Pod状态

    随着Pod创建过程的推进,kubelet不断向API Server报告Pod和容器的最新状态。当所有容器均达到期望状态(例如Ready状态),Pod将被视为处于“Running”状态,并可对外提供服务。

综上所述,创建Pod是一个涉及多个组件协同工作的复杂过程,从用户提交请求到最终容器成功运行,Kubernetes集群内的各个组件共同保证了Pod能够稳定、高效地运行在适当的节点上。

在K8S中,Pod创建过程包括什么?的更多相关文章

  1. K8S中Pod概念

    一.资源限制 Pod 是 kubernetes 中最小的资源管理组件,Pod 也是最小化运行容器化应用的资源对象.一个 Pod 代表着集群中运行的一个进程.kubernetes 中其他大多数组件都是围 ...

  2. k8s 中 Pod 的控制器

    k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ...

  3. K8S中pod和container的资源管理:CPU和Memory

    K8S中创建pod时,可以显示地指明包含的container的资源需求(resouce request和resource limit),通常是CPU和Memory(RAM). kube-schedul ...

  4. Java中对象创建过程

    本文介绍的对象创建过程仅限于普通Java对象,不包括数组和Class对象. 1.类加载检查 虚拟机遇到一条new指令时,首先去检查该指令的参数能否在常量池中定位到一个类的符号引用,并且检查这个符号引用 ...

  5. Kubernetes中pod创建流程

    转自:https://blog.csdn.net/yan234280533/article/details/72567261 Pod是Kubernetes中最基本的部署调度单元,可以包含contain ...

  6. k8s 基础 pod创建流程

    Pod是Kubernetes中最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例.例如一个web站点应用由前端.后端及数据库构建而成,这三个组件将运行在各自的容器中,那么我 ...

  7. K8s中Pod健康检查源代码分析

    了解k8s中的Liveness和Readiness Liveness: 表明是否容器正在运行.如果liveness探测为fail,则kubelet会kill掉容器,并且会触发restart设置的策略. ...

  8. k8s中pod内dns无法解析的问题

    用k8s创建了pod,然后进入pod后,发现在pod中无法解析www.baidu.com,也就是出现了无法解析外面的域名的问题.经过高人指点,做个小总结.操作如下. 一,将CoreDNS 的Confi ...

  9. oracle中的创建过程,函数,包

    一.创建存储过程 存储过程是在oracle中存取完成特定业务逻辑的代码块.存储过程是命名块,匿名块不存在数据库中,命名块会存储到数据库中,匿名块每次运行都需要提前编译,命名块一次存储,只会编译一次.命 ...

  10. Jenkins和Gitlab CI/CD自动更新k8s中pod使用的镜像说明

    Jenkins 使用Jenkins的话,完成的工作主要有如下步骤: 1.从Gogs或Gitlab仓库上拉取代码 2.使用Maven编译代码,打包成jar文件 3.根据jar文件使用相对应的Docker ...

随机推荐

  1. 通过windows自带管理工具、系统命令行、快捷键等快速操作

    windows自带管理工具 我们win+R 输入一些命令,可以快速打开一些界面,比如: sysdm.cpl win10.win11 我电脑,属性与之前win7不同了,我希望打开之前的属性打不开了 通过 ...

  2. 对话 BitSail Contributor | 吴畅:从好奇,到深入

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 2022 年 10 月,字节跳动 BitSail 数据引擎正式开源.同期,社区推出 Contributor 激励计 ...

  3. Solon Aop 特色开发(6)新鲜货提取器,提取Bean的函数进行定制开发

    Solon,更小.更快.更自由!本系列专门介绍Solon Aop方面的特色: <Solon Aop 特色开发(1)注入或手动获取配置> <Solon Aop 特色开发(2)注入或手动 ...

  4. Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数

    安装时间较长,通过 --verbose 参数 可以看在不在继续 Mac 安装 paddlehub 出现 Building wheels for collected packages: opencv-p ...

  5. 单位:MB、GB与MiB、GiB

    MB.GB与MiB.GiB的区别在于标准不同,MB使用的是十进制标准(SI标准),MiB使用的是二进制标准(IEC标准) 在工作中最好是先确定使用什么标准,防止出错 换算表: 1KB = 10^3 = ...

  6. 视频云AI时代,穿越市场第一,想象更多

    国际权威数据公司IDC发布<中国视频云市场跟踪(2023 H1)>报告:自2018年至今,阿里云持续保持中国视频云整体市场第一,整体市场占比达24.4%. 01 第一之外,低谷之上 近期, ...

  7. 【Cpp】RTTI 机制原理解析

    References Baidu Wiki C++中的RTTI机制详解 RTTI 推荐阅读: RTTI 原理 推荐阅读:C++中的RTTI机制 什么是RTTI机制? RTTI 是"Runti ...

  8. Codeforces Round #732 (Div. 2) A ~ D 个人题解记录

    比赛链接:Here 1546A - AquaMoon and Two Arrays 选定两个数组元素执行以下操作: \(a_i,a_j (1\le i,j \le n)\) 一个 +1 另一个 -1, ...

  9. S3C2440移植linux3.4.2内核之内核裁剪

    上一节S3C2440移植linux3.4.2内核之支持YAFFS文件系统我们修改了内核支持了yaffs2文件系统,这节我们裁剪内核. 目录 为什么要裁剪内核? 首先裁剪内核里无关的CPU/单板文件 裁 ...

  10. IDEA用上这十大插件绝对舒服

    本文翻译自国外论坛 medium,原文地址:https://medium.com/@xjpp22/top-10-plugins-for-intellij-idea-you-dont-want-to-m ...