pod的定义以及创建过程

pod是k8s中一个很重要的名词

pod是k8s中最小的工作单元,由一个或多个紧密耦合的容器组成,它们之间共享网络、存储等资源。pod中的容器会一起启动或停止。(我们可以把pod理解为花生壳,而容器是一粒粒花生)

那么pod的创建过程是怎样的呢?

执行 kubectl apply后,kubectl 把 YAML 转成 JSON 发给 API Server。API Server 先做 认证、授权、准入,通过后把 Pod 信息写进 etcd,这时 Pod 还没选机器,一般是 Pending。

接着 Scheduler 发现有"没分配 Node 的 Pod",先筛掉不合适的节点,再从剩下的里打分选一台,把绑定结果回写给 API Server,API Server 再把"绑定到哪个 Node"写进 etcd。

最后被选中的节点上 kubelet 看到任务,开始干活:准备网络(CNI)、挂载存储(CSI)、调用容器运行时(CRI)拉镜像起容器,然后把运行状态持续上报给 API Server,API Server 再写回 etcd,Pod 就变成 Running。

过程中,API-Server是各组件进行通信的中转站,是唯一入口;而etcd相当于整个流程的数据库,其中记录的状态各个组件会努力将其变为现实(自愈性);在 k8s中,许多组件如kubelet,schedule时刻监听自己感兴趣的资源变化,一旦发现有需要自己的地方主动建立连接(list-watch机制)

相关推荐
Decay__37 分钟前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子3 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF3 小时前
Linux
linux·服务器·网络
万联WANFLOW3 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
Decay__6 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
丰锋ff7 小时前
压缩命令笔记
linux
江华森8 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼8 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
阿里云云原生9 小时前
Agent 数据飞轮平台的选型和实践
云原生