K8s中,deployment 是如何从 yaml 文件最终部署成功 pod 的

在Kubernets中,Deployment从YAML文件最终部署为Pod的过程涉及多个组件协同工作,大致可以分为以下几个关键步骤:

1、提交Deployment TAML

用户通过kubectl apply -f deployment.yaml 提交配置

kubectl将YAML转换为API请求发送给Kubernetes API Server

2、API Server 处理

验证YAML配置的合法性(语法、字段约束等)

将Deployment对象存储到etcd数据库中

触发对象创建的事件通知

3、Deployment Controller 介入

Deployment Controller 是一个持续运行的控制循环

检测到新的Deployment对象后,根据配置创建ReplicaSet

4、ReplicaSet Controller 工作

ReplicaSet Controller 监听新创建的ReplicaSet

根据replicas 字段确定需要创建的Pod数量

5、Scheduler 调度Pod

Scheduler 负责为未调度的Pod选择合适的节点

基于节点资源、亲和性规则、污点/容忍等策略进行调度

将调度结果(绑定到特定节点) 更新到API Server

6、Kubelet 启动容器

目标节点上的Kubelet定期从API Server 同步Pod信息

发现分配给自己的新Pod后,通过容器运行时创建容器

拉取镜像、挂载存储卷、配置网络等

将容器状态更新回API Server

7、状态维护

各控制器持续监控对象状态,确保实际状态与期望状态一致

如果Pod异常终止,ReplicaSet会自动创建新的Pod替换

整个过程Kubernetes的"声明式 API"和"控制循环"设计理念,用户只需定义期望状态,Kubernetes会自动协调实现该状态。

相关推荐
Thneonl2 小时前
让恢复动作敢按下去:dry-run、审批门、自动回滚与 mutable twin
rust·kubernetes
艾伦_耶格宇2 小时前
【DOCKER容器实战】-2MySQL
运维·docker·容器
分布式存储与RustFS2 小时前
从 MinIO 到 RustFS:不只是换语言,更是换一份协议自由
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
To_OC12 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
ltl15 小时前
mTLS 工程实践:服务间双向认证怎么落地
kubernetes
tryCbest16 小时前
Docker 从零到精通:知识与跨平台使用指南
docker·容器
开始学AI19 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
做前端的娜娜子19 小时前
Docker 常用命令全梳理:从镜像拉取到容器编排
docker·容器·掘金·金石计划
m0_5791466521 小时前
关于Docker Desktop导致C盘空间异常占用的排查与根治方案
运维·docker·容器
易番番ERP1 天前
品牌代理商SKU繁多,ERP如何高效处理新旧规格替换?
数据库·微服务·云原生·sku·易番番erp