当前位置: 首页 > news >正文

【K8s】Pod

目录

1.请解释Pod是什么?

2. 什么是Pod的根容器?

3. 解释Pod的生命周期。

4.. Init 类型容器有什么特点,主要用途?

5. Sidecar 类型容器和Init容器的区别在哪?

6. 什么是静态Pod?


1.解释Pod是什么?

Pod 是 K8s 中可调度、可管理的最小、最基本的部署单元

一个 Pod 代表集群中一个“进程”。它封装了一个或多个容器、存储资源、一个唯一的网络 IP 以及关于如何运行容器的选项。Pod 里的多个容器共享同一个网络命名空间(共享 IP 和端口空间)和 IPC 命名空间,因此它们可以通过 localhost 互相通信,并能共享存储卷(Volume)。这非常适合部署紧密耦合、需要高效协作的多个进程。

理解要点:K8s 不直接操作单个容器,而是操作 Pod。一个典型的场景是“主容器 + 辅助容器”(例如一个容器运行 Web 服务,另一个负责拉取日志)。

2. 什么是Pod的根容器?

在 Kubernetes 的早期设计中,这个概念被称为"pause" 容器,可以理解为 Pod 的根容器或基础容器,其主要职责是占位并维护 Pod 的资源,确保 Pod 的生命周期稳定

(1)作用:它是最先启动的容器,负责为整个 Pod 持有网络和 IPC 命名空间。Pod 内所有其他用户容器都会加入(共享)由这个 pause 容器创建的命名空间。

(2)为什么需要它:有了这个“根容器”作为锚点,即使 Pod 内的某个业务容器崩溃或被重启,它的网络配置和共享存储等资源也不会受到影响,因为根容器始终在运行,维持着 Pod 的基础结构。

3. 如何理解Pod的生命周期。

当用户在终端执行命令创建Pod时,kubectl将用户写好的yaml文件转化为JSON格式发给API Server,API Server进行校验,检查Pod的权限、申请的资源是否符合要求,检查通过后,把Pod状态写入etcd库,容器的状态为pending。同时,API Server把Pod的信息公示,调度器、kubelet等实时关注API Server公示的信息,发现有自己的任务就迅速认领并处理,这就是list-watch机制

调度器发现有新的Pod没有绑定节点,采用调度算法对所有节点进行检查,过滤掉资源不足、不符合要求的节点,再对符合要求的节点按照权重打分,找出一个最合适的节点和Pod绑定,并且将绑定信息发送给API Server,API Server将绑定信息更新到etcd库,同时公示。

Pod绑定节点的kubelet监测发现了分给自己的Pod,准备好网络和存储,立即拉取镜像创建容器,容器启动后,kubelet监测容器的健康状态,把结果发送给API Server,API Server更新容器的状态为running,API Server把容器最终的状态写入etcd库。

每次的处理都要写入etcd库,只要写进etcd库,系统就会想办法实现

4.. Init 类型容器有什么特点,主要用途?

Init 容器是一种特殊的、在应用容器启动之前运行的专用容器。

Init容器有以下特点:

(1)顺序执行:一个 Pod 可以定义多个 Init 容器,它们会按顺序逐一执行,成功完成一个才能启动下一个。

(2)必须成功:所有 Init 容器都必须成功(运行后退出且退出码为0),否则 Pod 会不断重启直至成功。

(3)阻塞应用:在全部 Init 容器完成之前,Pod 会一直处于 Pending 或 Init:0/... 状态,主容器不会被启动。

Init容器主要用于环境准备、数据初始化和权限设置

(1)环境准备:等待数据库、消息队列等依赖服务就绪。

(2)数据初始化:创建数据库 Schema、执行数据迁移脚本、预填配置文件。

(3)权限设置:修改共享卷的文件权限或所有者。

5. Sidecar 类型容器和Init容器的区别在哪?

通过一个表格从多个维度对比sidecar容器和Init容器的区别:

维度Init 容器Sidecar 容器
运行阶段在 Pod 启动时,主容器之前运行。与主容器同时运行,伴随整个生命周期。
执行模式运行任务后必须退出(成功/失败)。持续运行,不会退出(除非出错)。
数量可以有多个,但顺序执行通常一个,与主容器并行运行
资源占用任务完成后即释放资源(CPU/内存)。长期占用 Pod 的资源。
典型用途初始化、等待依赖、数据准备。日志收集、代理/流量转发、监控辅助、配置动态更新。

6. 什么是静态Pod?

静态 Pod 是直接由节点上的 kubelet 守护进程管理,而不通过 Kubernetes API Server 控制的 Pod。

(1)创建方式:你需要在节点的特定目录(通常由 --pod-manifest-path 或 --manifest-url 指定,如 /etc/kubernetes/manifests)里放一个 Pod 的 JSON/YAML 文件。kubelet 会定期扫描该目录,自动创建并维护其中的 Pod。

(2)特点:不服从调度:静态 Pod 永远只能运行在它所在的节点上,不受调度器控制。

API 只读:你可以用 kubectl get pod 看到它,但无法通过 kubectl delete 删除它

(3)主要用于部署核心控制平面组件,这也是Kubeadm 部署 Kubernetes 集群的方法——kube-apiserver、etcd、kube-controller-manager 等组件都是以静态 Pod 的形式运行在 master 节点上的。这保证了即使 API Server 宕机,这些核心组件仍能由 kubelet 维持运行。

http://www.zskr.cn/news/1397501.html

相关文章:

  • 毫米波Class-C VCO设计:利用反馈路径嵌入变容管突破调谐范围限制
  • 2026成都诚信音响设备旧货回收服务商推荐榜:二手空调回收、二手空调旧货回收市场、办公家具旧货回收市场、变压器旧货回收市场选择指南 - 优质品牌商家
  • 动态目标跨镜无缝接力追踪技术——移民局出入境证件查验辅助场景中的空间智能应用白皮书
  • 动态目标跨镜无缝接力追踪技术——海关口岸登临检查场景中的空间智能应用白皮书
  • SkillsBot - 发现、分享、安装 AI Agent Skill技能库
  • 安卓开发者如何快速接入大模型API并管理Token消耗
  • 光帆首款带摄像头 AI 耳机首发价 1999 元;飞拓星驰发布硬件体感游戏平台 Fit-OS:端侧实时 3D 动捕达 120 FPS丨日报
  • C51中断服务程序中的浮点运算可重入性问题解析
  • 【WorkBuddy从入门到精通】第01篇:保姆级教程——从零开始搭建你的第一个AI数字员工(2026实测版)
  • 2011-2024年耐心资本、数字经济与创新效率
  • AI代理内存管理:TTL与智能遗忘策略的工程实践
  • 避开第一个坑:为什么神经网络权重不能初始化为0(附Python代码示例)
  • 生产级RAG系统实战:从原型到高可用部署的工程化指南
  • 为Claude Code配置Taotoken作为备用API源以解决封号与Token不足困扰
  • Dempster-Shafer证据理论避坑指南:为什么你的合成结果总是不对?
  • FPGA高层次合成技术:从原理到工业实践
  • Animotion MCP:基于MCP协议为AI编程提供标准图标与动画资源
  • 深圳律师 别人欠钱不还怎么办?2026最新完整维权指南 - 从来都是英雄出少年
  • 量子计算中qutrit电路优化与Steiner-Gauss算法应用
  • Figma的自动布局功能是如何工作的?
  • 用了AI之后,我的个人风格反而更明显了
  • 2026年净化公司TOP10榜单:无尘车间/GMP净化/无菌实验室/洁净室工程/手术室净化/食品车间/电子厂房/生物医药最新推荐 - 企业推荐官【官方】
  • 消息队列顺序性保证实战
  • Web Workers:JavaScript 的多线程编程
  • CMOS传感器lines_per_second参数原理与应用解析
  • 留学生论文被 Turnitin 判 AI?用 PaperXie 一键把 AIGC 率压到个位数,再也不怕被导师质疑
  • 告警策略与自动化运维:构建智能运维体系
  • 技术分享:让知识流动起来
  • 如何构建Multi-Agent系统的知识库:领域知识融合与动态更新
  • 明日方舟游戏资源库:技术开发者与创意工作者的完整解决方案