用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
k8s中pod 的创建开始到结束详细过程
k8s中pod 的创建开始到结束详细过程
反转基因福娃
论坛元老
|
2025-3-10 02:10:50
|
显示全部楼层
|
阅读模式
楼主
主题
1712
|
帖子
1712
|
积分
5136
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
1.在 k8s 里面从一个 pod 的创建开始到结束,这期间用了什么组件?他们起到 什么样的作用?
1.
API Server
作用
:接收 Pod 创建哀求,验证设置并存储到 etcd,关照其他组件。
流程
:
验证 Pod 设置文件的合法性。
将 Pod 的界说存储到 etcd 中,作为集群的持久化存储。
关照其他组件 Pod 的状态变化。
2.
etcd
作用
:存储 Pod 的界说和状态信息
流程
:
接收 API Server 写入的 Pod 界说。
提供 Pod 状态的持久化存储。
3.
Scheduler(调理器)
作用
:选择合适的节点来运行 Pod,并将 Pod 绑定到节点。
流程
:
监听 API Server,查找处于 Pending 状态的 Pod。
根据资源需求、节点状态、亲和性规则等选择最佳节点。
将 Pod 绑定到选定的节点,并更新状态到 etcd。
4.
Kubelet
作用
:在节点上管理 Pod 生命周期,与容器运行时协作,启动和监控容器。
流程
:
监听 etcd 或 API Server 的变化,发现新分配到本节点的 Pod。
与容器运行时(如 containerd)协作,拉取镜像、创建容器。
调用 CNI 插件为 Pod 设置网络。
监控 Pod 和容器的运行状态,并将状态信息反馈给 API Server。
5.
容器运行时(如 Docker、containerd)
作用
:拉取镜像并管理容器的创建、运行和销毁。
流程
:
根据 Kubelet 的指令拉取镜像。
创建、启动、停止和删除容器。
6.
CNI(容器网络接口)插件
作用
:CNI 插件负责为 Pod 提供网络功能。
流程
:
为 Pod 分配 IP 所在。
设置网络设备和路由规则。
7.
Pause 容器
作用
:Pause 容器是 Pod 的底子设施容器,为其他容器提供共享的网络、PID 和 IPC 定名空间。
流程
:
在 Pod 启动时起首运行,初始化网络和存储卷。
其他容器共享 Pause 容器的网络和定名空间。
8.
Controller Manager
作用
:Controller Manager 包含多个控制器,负责集群的自动化管理。
流程
:
监控 Pod 的状态,确保 Pod 副本数量符合预期。
在节点故障时重新调理 Pod。
Pod 的生命周期
Pending
:Pod 已被创建,但尚未分配到节点上。
Running
:Pod 已绑定到节点,容器已启动。
Succeeded
:Pod 中的全部容器正常退出。
Failed
:Pod 中的容器因错误退出。
Unknown
:Pod 状态未知,通常是因为节点通信问题。
Pod 创建和分配到 Worker 节点的
详细过程
1. Pod 的创建哀求
用户通过 kubectl 或其他客户端工具向 Kubernetes 集群提交 Pod 创建哀求。
这个哀求起首发送到
API Server
,API Server 是 Kubernetes 控制平面的核心组件,运行在 Master 节点上。
2. API Server 的处理
API Server
接收到 Pod 创建哀求后,会验证 Pod 设置的合法性。
如果验证通过,API Server 会将 Pod 的界说存储到
etcd
(集群的持久化存储,通常也运行在 Master 节点上)。
此时,Pod 的状态为
Pending
,表示它已经被创建,但尚未分配到详细的节点。
3. Scheduler 的调理
Scheduler
(调理器)运行在 Master 节点上,它会监听 etcd 中处于
Pending
状态的 Pod。
Scheduler 根据一系列规则(如资源需求、亲和性规则、节点状态等)选择一个合适的
Worker 节点
来运行 Pod。
一旦选择完成,Scheduler 会将 Pod 绑定到选定的 Worker 节点,并将绑定信息更新到 etcd 中。
4. Kubelet 的实行
每个
Worker 节点
上都运行着一个
Kubelet
署理。
Kubelet 会定期从 etcd 或 API Server 中获取分配给本节点的 Pod 信息。
当 Kubelet 发现有新的 Pod 被分配到本节点时,它会与容器运行时(如 containerd 或 Docker)协作,完成以下操作:
拉取 Pod 中容器的镜像。
创建 Pause 容器(如果需要)。
启动 Pod 中的容器。
设置网络(通过 CNI 插件)。
一旦 Pod 中的全部容器都乐成启动,Pod 的状态会变为
Running
。
Running 状态到 终止 的各个阶段
5. Pod 的运行与监控
当 Pod 的状态变为
Running
后,Kubernetes 会连续监控 Pod 的运行状态,确保其正常运行:
5.1. 康健检查
存活探针(Liveness Probe)
:定期检查容器是否仍在运行。如果探针失败,Kubernetes 会自动重启容器。
停当探针(Readiness Probe)
:检查容器是否准备好接收流量。如果失败,Pod 会被从服务的负载平衡器中移除,直到恢复。
启动探针(Startup Probe)
:用于检测容器的启动状态,确保容器能够正常启动。
5.2. 资源监控
Kubelet
:连续监控 Pod 的资源利用情况(如 CPU、内存),并根据设置的资源限制(Resource Limits)进行管理。
变乱记载
:Kubernetes 会记载 Pod 的运行变乱,如容器重启、资源不足等,这些变乱可以通过 kubectl describe pod <pod-name> 查看。
5.3. 日志收集
Pod 中的容器日志会由 Kubelet 收集,并可以通过 kubectl logs <pod-name> 查看。在生产情况中,日志通常会被发送到会合式日志体系(如 Elasticsearch、Fluentd、Kibana)。
6. Pod 的终止
Pod 的终止可能是由用户主动触发(如 kubectl delete pod),也可能是由于资源不足、节点故障或 Pod 完成任务后自动触发。
6.1. 终止哀求
用户通过 kubectl delete pod <pod-name> 或其他方式哀求删除 Pod。
API Server 接收到哀求后,将 Pod 的状态设置为
Terminating
,并关照干系组件开始终止流程。
6.2. 预终止钩子(PreStop Hook)
如果 Pod 中的容器界说了 PreStop 钩子,Kubelet 会先实行该钩子。PreStop 钩子通常用于在容器终止前实行清理操作,如关闭服务、释放资源等。
6.3. 终止信号
Kubelet 向 Pod 中的容器发送 SIGTERM 信号,关照容器开始优雅退出。
容器在接收到 SIGTERM 信号后,应尽量完成当前任务并退出。如果容器在指定的终止宽限期(默认 30 秒)内未退出,Kubelet 会发送 SIGKILL 信号强制终止容器。
6.4. 网络隔离
在 Pod 被标志为
Terminating
后,Kubernetes 会立刻将其从集群的网络中隔离,Pod 的 IP 所在和端口不再接受新流量。
6.5. 清理资源
Kubelet 确保 Pod 中的全部容器都已终止后,释放 Pod 占用的资源,如存储卷、网络接口等。
如果 Pod 利用了动态存储卷,存储卷可能会根据设置被保存或删除。
6.6. 从 etcd 中移除
最后,Kubelet 关照 API Server,Pod 已完全终止。API Server 从 etcd 中删除 Pod 的记载,完成整个终止流程。
7. Pod 的最终状态
Succeeded
:Pod 中的全部容器正常退出,任务完成。
Failed
:Pod 中的容器因错误退出,任务失败。
Terminating
:Pod 正在被终止,但尚未完全清理。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
反转基因福娃
论坛元老
这个人很懒什么都没写!
楼主热帖
设计模式---组合模式
Spark快速上手(4)Spark核心编程-Spark ...
【Unity3D】Transform组件
拿到12家offer,想给大家分享一下面试 ...
【渗透攻击】PowerShell与Shell 有什么 ...
Linux的目录结构
如何将鸿蒙(harmonyOS)系统退回安卓 ...
使用 Kubeadm 部署 K8S安装
[工具使用]SqlMap
echarts使用及遇到的问题
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表