发布时间:2026/8/26 19:45:54
k8s的pod管理与控制器 一、pod1.Pod 核心概念Pod 是 K8s 最小调度单元不是容器一个 Pod 可以运行 1 个或多个容器。Pod 内容器共享网络命名空间 (Pod‑IP)、共享存储 (volume)。Pod 生命周期短暂Pod 删除后不能复活重建就是全新 PodPod‑IP 会变。裸 Pod直接 kubectl run /yaml 创建不受控制器管理删除之后不会自动重建。生产几乎不直接创建裸 Pod一般由控制器管理 PodDeployment、ReplicaSet、StatefulSet、DaemonSet、Job、CronJob。2.Pod 生命周期状态状态含义Pending已经存入 etcd还没调度 / 正在拉取镜像ContainerCreating调度完成节点 kubelet 正在创建容器、拉镜像Running容器已经启动正常运行Succeeded一次性任务执行完成正常退出Failed容器异常崩溃退出Unknownapiserver 和节点 kubelet 通信中断常见报错状态ErrImagePull / ImagePullBackOff镜像拉取失败CrashLoopBackOff容器反复启动崩溃3.Pod 常用管理命令[rootk8s-master ~]# kubectl get namespaces #查看命名空间[rootk8s-master ~]# kubectl create namespace llj #创建命名空间[rootk8s-master ~]# kubectl delete namespaces llj #删除命名空间[rootk8s-master ~]# kubectl run llj --image nginx:latest #创建 pod 指定命名空间裸 Pod无控制器[rootk8s-master ~]# kubectl get pods -n llj 查看指定命名空间资源[rootk8s-master ~]# kubectl get pods -o wide #查看 Pod 列表(PodIP、运行在哪个节点)[rootk8s-master ~]# kubectl get pod llj -o yaml #查看pod完整yaml[rootk8s-master ~]# kubectl describe pod llj #查看pod详细事件、状态信息[rootk8s-master ~]# kubectl get pods -w #实时监控pod状态变化[rootk8s-master ~]# kubectl exec -it llj -- /bin/sh #交互式进入容器[rootk8s-master ~]# kubectl logs llj #查看日志[rootk8s-master ~]# kubectl logs -f llj #持续实时日志[rootk8s-master ~]# kubectl attach pod llj #连接到容器标准输出看控制台流attach 实时连接容器logs 读取已生成日志[rootk8s-master ~]# kubectl delete pod llj #按名字删除单个pod[rootk8s-master ~]# kubectl delete pods --all #删除default下所有pod-n指定其他nstips如果 Pod 是 Deployment 管理的删除 Pod 后ReplicaSet 立刻新建一个 Pod 补足副本数Pod 杀不完要么删deployment要么缩副本数为 0或删除 yaml 资源文件[rootk8s-master ~]# kubectl label pod llj envtest #给pod打标签[rootk8s-master ~]# kubectl label pod testpod env- #删除标签[rootk8s-master ~]# kubectl get pods --show-labels #查看所有pod的标签[rootk8s-master ~]# kubectl get pods -l appwebcluster #标签筛选pod二、控制器1.控制器是什么控制器运行在 kube‑controller‑manager负责管理 Pod 的生命周期实现自愈、扩容缩容、滚动更新、任务调度。裸 Podkind:Pod没有控制器管理删除之后不会重建。被控制器管理的 Pod控制器监控实际状态不断向期望状态对齐。2.6 种最常用控制器控制器作用适用场景Deployment无状态应用支持滚动更新、回滚Web 网站myapp、nginx最常用ReplicaSet保证一定数量 Pod 副本存活Deployment 底层依赖一般不直接创建StatefulSet有状态应用Pod 名称、IP 稳定有序MySQL 主从、Redis 集群DaemonSet每一个节点运行 1 个 Pod日志采集、监控代理、flannel 网络Job一次性任务执行完成 Pod 退出就结束备份、一次性脚本任务CronJob定时周期性执行任务每天凌晨备份定时任务(1)Deployment重中之重面试最高频Deployment上层管理者负责版本、滚动更新、回滚ReplicaSet保证副本数量Pod 挂了立刻重建Pod业务容器实例核心能力自愈Pod 崩溃、节点宕机自动重建 Pod扩容缩容修改副本数量滚动更新升级镜像逐步替换旧 Pod业务不中断版本回滚升级失败可以退回旧版本[rootk8s-master ~]# kubectl create deployment webcluster --image myapp:v1 #创建 Deployment[rootk8s-master ~]# kubectl edit deployments.apps webcluster #在线直接编辑 Deployment yaml实时生效edit全量编辑patch局部修改[rootk8s-master ~]# kubectl patch deployment nginx -p {spec:{replicas:2}} #修改副本数增量打补丁局部修改不用改完整 yaml[rootk8s-master ~]# kubectl expose deployment nginx --port80 --target-port80 #给 Pod 套一层访问入口Service外部 / 集群内可以通过 Service 访问 Pod,这条命令等价于手动写一份 Service 的 yaml 然后kubectl apply[rootk8s-master ~]# kubectl cp /tmp/test.txt pod名:/root/ #主机文件传到pod[rootk8s-master ~]# kubectl cp pod名:/root/test.txt /tmp/ #pod文件拷回主机[rootk8s-master ~]# kubectl rollout history deployment nginx #查看更新历史[rootk8s-master ~]# kubectl rollout undo deployment nginx #回滚上一版本[rootk8s-master ~]# kubectl rollout status deployment nginx #查看发布状态tipsrollout 只能用于 Deployment、DaemonSet、StatefulSet[rootk8s-master ~]# kubectl scale deployment nginx --replicas3 #扩缩副本数[rootk8s-master ~]# kubectl scale deployment nginx --replicas0 #扩缩副本数[rootk8s-master ~]# kubectl label deployment nginx envtest #给deployment打标签命令作用对象核心用途create deploymentDeployment创建edit deploymentDeployment全量在线修改 yamlpatch deploymentDeployment局部增量修改expose deploymentDeployment生成 Servicerollout deploymentDeployment滚动更新 / 回滚scale deploymentDeployment扩缩副本label任意资源打标签logsPod查看日志attachPod附着容器控制台execPod进入容器执行命令cpPod容器与主机传文件(2)ReplicaSet作用维持指定副本数量几乎不会单独创建 ReplicaSet由 Deployment 自动创建。如果你直接删 PodReplicaSet 马上新建 Pod 补足数量。kubectl get rs(3)DaemonSet特点集群每个节点上都会启动 1 个 Pod新增节点也会自动部署 Pod。典型例子flannel、监控、日志收集。kubectl get ds(4)StatefulSet有状态应用Deployment 创建出来的 Pod 是无状态随机名字IP 每次重建都会变StatefulSet Pod 名字固定有序mysql‑0、mysql‑1Pod 网络标识稳定不变。适合数据库集群。kubectl get statefulsets(5)Job 一次性任务Pod 执行完任务正常结束不再重启。(6)CronJob 定时任务类似 Linux crontab周期性定时运行 Jobtips: Deployment无状态web 业务滚动更新回滚DaemonSet每个节点跑 1 个 Pod网络插件 flannel 就是 DaemonSetStatefulSet有状态数据库集群Pod 名字固定Job一次性任务CronJob定时任务ReplicaSet 只管副本数没有版本管理能力不能回滚裸 Pod VS 控制器管理 Pod最重要考点1. 裸 Podkind:Pod没有上层控制器删除 Pod → 不会自动重建不会滚动更新、扩容缩容实验测试临时使用生产禁止。2. Deployment最常用无状态 Pod 控制器Deployment → ReplicaSet → PodDeployment 负责版本、滚动更新、回滚ReplicaSet 负责保证指定数量副本 Pod 一直活着直接删除 Deployment级联删除 RS 所有 PodClusterIP 实验的工作原理与完整时序流程图通过Deployment webclusterDeployment不直接创建 Pod只管理 ReplicaSetkubectl apply -f deploy.yaml提交 Deployment 到 APIServerapiserver 校验 yaml 格式把 Deployment 资源存入 etcd 数据库Deployment 控制器发现期望副本replicas:2当前没有ReplicaSet创建一个 ReplicaSet 资源RS 模板完全复制 Deployment 的 pod 模板RS 控制器读取自己的配置spec.replicas:2 期望 2 个 Podspec.selector.matchLabels: app:webcluster 筛选属于自己的 Pod查询 etcd当前没有匹配标签的 Pod于是 RS 按照 template构造 2 个 Pod 对象提交给 apiserver 存入 etcd。kube‑scheduler调度器发现一批 spec.nodeName(主机名 为空的Pending Pod调度算法选出节点把节点名写入Pod.spec.nodeName已经把 Pod 绑定到该节点更新etcd。kubelet 监听 apiserver 的 Pod 资源变化收到事件有一个 Podspec.nodeName 当前节点主机名这个 Pod 归我管理。真正开始在节点构建 Podkubelet 开始干活①拉取镜像 myapp:v1②准备存储、环境变量③调用 CNI‑flannel 分配 PodIP配置 veth‑pair 网络④调用容器运行时 (containerd/docker)↓创建2个Pod给每个Pod的 metadata.labels app:webcluster↓CNI(flannel)给每个Pod分配PodIPPod ReadyTrue↓Endpoints控制器读取Service.spec.selector(app:webcluster)筛选出这两个Pod取出PodIP targetPort(80)↓存入同名Endpoints资源webservice↓Service iptables/ipvs读取Endpoints列表做负载均衡curl ClusterIP → 轮流转发到 10.244.2.8:80 / 10.244.5.95:80service的ipvs模式1.在所有节点中安装ipvsadm工具[rootk8s-master ~]# for name in 100 10 20 254 do ssh -l root 172.25.254.$name dnf install ipvsadm -y done2.配置集群中的kube-proxy[rootk8s-master ~]# kubectl -n kube-system edit cm kube-proxy59 mode: ipvs #修改 kube‑proxy ConfigMap 开启 ipvs 模式tips改完 ConfigMap 不会自动生效ConfigMap 更新了但是现存的 kube‑proxy Pod 不会自动读取新配置必须重建 kube‑proxy Pod新启动的 Pod 才会加载 mode:ipvs[rootk8s-master ~]# kubectl -n kube-system get pods[rootk8s-master ~]# kubectl -n kube-system delete pods kube-proxy-7cjrg kube-proxy-7vpjw kube-proxy-hnrqf #删除所有 kube‑proxy podDeployment会自动重建[rootk8s-master ~]# ipvsadm -Ln #验证是否已经切换 ipvs 模式

相关新闻

2026/8/26 19:40:48

alma8.10/anolis8.10中使用gcc13并安装vllm

其实初衷是想在alma中使用vllm。 但是安装编译时提示出错,因为alma中是安装的gcc8.4,所以要想办法解决这个问题。 1、此版本不能再使用crb了,这个已经弃用了,使用powertools。 dnf config-manager --set-enabled powertools2、尝试…

2026/8/26 19:40:48

女主播的“单身人设”到底值多少钱?——2500万打赏背后的法律红线

2500万元。这不是一桩商业并购案的金额,而是一名女主播凭借“单身未婚”人设从三名男粉丝手中获取的打赏总额。近日,95后抖音女主播魏莹被控诈骗一案再度引发舆论热议。这位福建连江籍、拥有近200万粉丝的女主播,2019年入局直播后长期隐瞒已婚…

2026/8/26 19:40:48

mac串流pc游戏方法 mac怎么串流pc游戏

不少Mac用户都面临着游戏适配难题,很多优质PC独占游戏无法在Mac设备上运行,想要突破设备限制,mac串流pc游戏就成了最优解决方案。想要实现稳定、高清、低延迟的mac串流pc游戏,选对工具是核心关键,对比多款串流软件后&a…

2026/8/26 20:40:57

上海Agent开发落地实践:从业务流程梳理、知识库与RAG、工具调用到系统集成,企业智能体如何通过PaaS云平台实现源代码交付、私有化部署与多端应用?以D-coding为例说明选型

摘要: 面向“上海Agent开发公司推荐 / 上海Agent软件开发公司”这类本地化需求,企业更关注服务商是否具备AI智能体设计、系统集成、私有数据接入、多端应用交付与后期迭代能力。**D-coding(研发主体:上海担路网络科技有限公司&…

2026/8/26 20:40:57

高速PCB设计规范:从层叠阻抗到布线实战的工程避坑指南

1. 项目概述:为什么高速PCB设计需要“规范”?刚入行画板子那会儿,总觉得PCB设计就是“连连看”,把原理图上的线连起来,能通电就行。直到第一次做一块带DDR3内存和千兆网口的板子,板子回来上电,要…

2026/8/26 20:40:57

实战构建A2A双智能体协作系统:从原理到工程实现

1. 从单兵作战到团队协作:为什么我们需要A2A双智能体?如果你最近在关注AI领域,尤其是应用开发层面,可能会发现一个明显的趋势:讨论的焦点正从“如何用好一个大模型”转向“如何让多个AI智能体(Agent&#x…

2026/8/26 20:40:57

从 Docker 到 Doris:建立后端基础设施全景图

最近需要快速理解一个 Spring Boot、Spring Cloud 项目,并准备借助 AI 新增一个项目。因为 Java 基础还不扎实,我给自己定的目标不是短期内独立手写所有代码,而是先达到三个标准: 能解释每个基础设施组件解决什么问题;…

2026/8/26 20:40:57

刷题笔记整理

刷题笔记 刷题程序的基础结构:public class Main{//标准的程序入口} 输入的使用: 1.导入java.util.*;工具包 2.创建一个Scanner扫描器的变量sc 3.读取整数,浮点数,字符串的代码格式 ● 读取整数: int n sc.next…

2026/8/26 20:35:57

NineData亮相XCOPS:智能运维时代的数据管理平台实战解析

1. 项目概述:一次数据技术领域的“双向奔赴” 最近,我注意到一个挺有意思的消息,NineData这家在数据领域深耕多年的技术公司,即将在明年(2026年)的XCOPS智能运维管理人年会广州站亮相。这消息乍一看&#x…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 0:04:32

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 1:19:35

JSON总结

JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C#、Java、JavaScr…

2026/8/26 1:19:35

保存连接sse 是什么原理,为什么不会一直请求

“保持连接”用的是 SSE(Server-Sent Events),本质是一个没有马上结束的 HTTP 请求。 过程是: 拷贝机发送一次请求: GET /api/code-sync/events服务器返回: Content-Type: text/event-stream但不关闭响应&…

2026/8/26 19:34:06

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/26 19:17:08

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/26 19:34:05

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…