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

解析pod

一、Pod基本概念
  • 最小编排单位‌:Pod是Kubernetes项目中的最小编排单位,而非容器。容器(Container)是Pod属性中的一个字段。
  • 设计目的‌:Pod的设计旨在模拟传统部署环境中的“虚拟机”角色,以平滑用户从传统环境(虚拟机环境)向Kubernetes(容器环境)的迁移。
二、Pod与容器的属性区分
  • Pod级别属性‌:
    • 调度、网络、存储、安全相关属性,描述的是“机器”整体。
    • 例如:网卡配置(网络定义)、磁盘配置(存储定义)、防火墙配置(安全定义)、调度节点(通过NodeSelector或NodeName指定)。
    • 与Linux Namespace相关的属性也是Pod级别,因为Pod内的容器尽可能多地共享Linux Namespace。
  • 容器级别属性‌:
    • 构成Kubernetes项目中Container的主要字段,如镜像(Image)、启动命令(Command)、工作目录(workingDir)、端口(Ports)、挂载卷(volumeMounts)。
    • 特定属性如ImagePullPolicy(镜像拉取策略)、Lifecycle(生命周期钩子)也值得关注。
三、Pod重要字段
  • NodeSelector‌:用于将Pod与Node绑定。
  • NodeName‌:指定Pod运行的节点,一般由调度器设置,用户也可在测试或调试时设置。
  • HostAliases‌:定义Pod的/etc/hosts文件内容。
  • shareProcessNamespace‌:使Pod内的容器共享PID Namespace。
  • hostNetwork、hostIPC、hostPID‌:使Pod内的容器共享宿主机的Network、IPC和PID Namespace。
四、Pod生命周期与状态
  • 生命周期变化‌:主要体现在Pod API对象的Status部分,特别是pod.status.phase字段。
  • 状态类型‌:
    • Pending‌:Pod已提交给Kubernetes,但部分容器因某种原因不能顺利创建(如调度不成功)。
    • Running‌:Pod已调度成功,与具体节点绑定,且至少有一个容器正在运行。
    • Succeeded‌:Pod内所有容器都正常运行完毕并退出,常见于一次性任务。
    • Failed‌:Pod内至少有一个容器以非正常状态退出。
    • Unknown‌:Pod状态无法持续被kubelet汇报给kube-apiserver,可能是主从节点间通信问题。
  • Conditions‌:进一步细分Pod状态的原因,如PodScheduled、Ready、Initialized、Unschedulable。
  • Ready状态‌:意味着Pod不仅已正常启动(Running状态),且已可以对外提供服务。
五、应用停止服务但Pod状态为Running的例子
  • 程序本身有bug,返回错误状态码。
  • 程序因内存问题僵死,无响应但进程仍在。
  • Dockerfile不规范,应用程序非主进程。
  • 程序出现死循环。
六、其他注意事项
  • Pod只会监控容器状态,不会监控容器内程序的运行状态。
  • 优雅停机可通过prestop hook实现。
  • ImagePullPolicy的默认值在不同Kubernetes版本中可能有所不同,需参考官方文档。
http://www.xdnf.cn/news/9471.html

相关文章:

  • MySQL推出全新Hypergraph优化器,正式进军OLAP领域!
  • msql的乐观锁和幂等性问题解决方案
  • Quartus 开发可实现人工智能加速的 FPGA 系统
  • rockerMQ实战 事务消息、延迟消息
  • 【Ruoyi-Vue】动态修改ruoyi-vue路由标签名称
  • MYSQL丢失pid处理方式
  • ZAB 和 RAFT分别是什么?它们的区别是什么?
  • STM32之FreeRTOS移植(重点)
  • 一次消谐器更换操作流程及注意事项
  • 7系fpga带microblaze做固件及固化
  • leetcode501.二叉搜索树中的众数:迭代中序遍历的众数追踪与数组动态更新
  • 重磅发布 | 复旦533页《大规模语言模型:从理论到实践(第2版)》(免费下载)
  • spring Data JPA详细介绍。
  • 3.20 工程计价数字化与智能化
  • PyTorch 2.1新特性:TorchDynamo如何实现30%训练加速(原理+自定义编译器开发)
  • Spring Ai | 从零带你一起走进AI项目(中英)
  • PXC集群
  • C++数据结构 : 二叉搜索树
  • Java大师成长计划之第32天:使用Kubernetes进行Java应用编排与管理
  • Python页面纸张大小设置
  • 为什么苹果签名会掉签
  • 语音合成之十七 语音合成(TTS)中文自然度:问题、成因、解决方案
  • C++ 初始化大全
  • JavaScript变量宣言三剑客:var、let、const的奇幻冒险
  • 覆盖索引详解:原理、优势与面试要点
  • 循环神经网络(RNN):原理、架构与实战
  • 第1章 计算机系统知识
  • 32. 自动化测试开发之建立mysql和oracle数据库连接池
  • 训练自己的yolo模型,并部署到rk3588上
  • 微元法求解弧长与侧面积