当前位置: 首页 > 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.jsqmd.com/news/893577/

相关文章:

  • Python事件驱动架构实战:构建高可用异步系统
  • 2026年 东莞/广州溶剂厂家推荐榜:天那水、白电油、稀释剂、石脑油等工业溶剂源头厂商实力口碑精选 - 品牌企业推荐师(官方)
  • 2026成都诚信音响设备旧货回收服务商推荐榜:二手空调回收、二手空调旧货回收市场、办公家具旧货回收市场、变压器旧货回收市场选择指南 - 优质品牌商家
  • CANN 学习路线 - CANN学习路径规划与资源推荐
  • 别再手动标点了!OpenCV相机标定后,用undistort()一键搞定图像去畸变(附Python代码)
  • 模型驱动的汽车稳定性控制系统关键技术【附程序】
  • 程序验证理论
  • 2026年食品级碳酸氢铵厂家名录:工业碳铵生产企业/工业级碳酸氢铵生产企业/工业级碳铵生产企业/食品碳酸氢铵生产企业/选择指南 - 优质品牌商家
  • 【图像检测】基于霍夫变换实现道路检测附Matlab代码
  • 5分钟掌握Ofd2Pdf:免费开源OFD转PDF工具终极指南
  • 光帆首款带摄像头 AI 耳机首发价 1999 元;飞拓星驰发布硬件体感游戏平台 Fit-OS:端侧实时 3D 动捕达 120 FPS丨日报
  • 大模型API定价全解析:从百倍价差到成本优化实战
  • 消息发送失败处理与 DLQ 补偿流程
  • 3步解锁Book118文档下载器:告别付费墙的技术方案
  • 如何构建Multi-Agent系统的知识库:领域知识融合与动态更新
  • 《jQuery UI 使用指南》
  • 面向对象设计原则(一)
  • CMOS传感器lines_per_second参数原理与应用解析
  • 告别DOS!2024年Windows下硬盘健康检查,这3款工具最省心(附DiskGenius详细操作)
  • 精通开关电源设计 day1
  • 工业AOI实战:如何将HRIPCB数据集与YOLOv8结合,打造你自己的PCB缺陷检测系统
  • AI 解散了,Grok 还在,马斯克的 AI 野心走到哪了?| 深度分析
  • 文献综述速成术,从选题到定稿仅需72小时:基于IEEE/ACM双盲评审标准的ChatGPT提示工程实战
  • 基于混合Transformer的稀疏多通道sEMG手势识别模型TraHGR详解
  • 在Nodejs后端服务中集成多模型API以提升应用智能
  • 生产级RAG系统实战:从原型到高可用部署的工程化指南
  • 神经网络有意义学习:基于句子相似度的深度文本聚类实践
  • Web Workers:JavaScript 的多线程编程
  • Flutter MVC架构详解:经典架构模式实战
  • 2026西南方管供应商推荐及选购指南:镀锌方管生产厂家/附近方管批发/附近钢材批发市场/附近钢材采购批发/哪里有方管批发/选择指南 - 优质品牌商家