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

Kubernetes 垃圾收集(Garbage Collection)完全指南:对象生命周期管理

Kubernetes 垃圾收集Garbage Collection完全指南对象生命周期管理1. Owner 和 Dependent所有者与依赖对象1.1 核心概念Owner所有者Kubernetes 中部分对象可作为其他对象的 “所有者”例如 ReplicaSet 是其管理的 Pod 的所有者。Dependent依赖对象被其他对象拥有的对象每个依赖对象的metadata.ownerReferences字段会指向其所有者。自动关联Kubernetes 1.6 版本中ReplicationController、ReplicaSet、StatefulSet、DaemonSet、Deployment 创建的对象如 Pod会自动设置ownerReferences无需手动配置。手动关联可通过手动设置ownerReferences字段自定义所有者与依赖对象的关系。1.2 示例ReplicaSet 与 Pod 的关联# 示例ReplicaSet 配置所有者 apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: my-repset spec: replicas: 3 selector: matchLabels: pod-is-for: garbage-collection-example template: metadata: labels: pod-is-for: garbage-collection-example spec: containers: - name: nginx image: nginx创建后Pod 的ownerReferences会自动关联到该 ReplicaSet# Pod 的 metadata 字段依赖对象 apiVersion: v1 kind: Pod metadata: ownerReferences: - apiVersion: extensions/v1beta1 controller: true blockOwnerDeletion: true # 阻止所有者删除后续详解 kind: ReplicaSet name: my-repset uid: d9607e19-f88f-11e6-a518-42010a8001952. 控制垃圾收集器删除 Dependent级联删除当删除所有者对象时可通过「级联删除」策略控制是否自动删除其依赖对象。未被自动删除的依赖对象称为「孤儿对象」。Kubernetes 支持两种级联删除模式2.1 Background 级联删除后台删除执行逻辑先立即删除所有者对象垃圾收集器在后台异步删除依赖对象。特点删除操作不阻塞所有者对象快速消失依赖对象清理在后台完成。适用场景对删除速度有要求无需等待依赖对象清理完成的场景。2.2 Foreground 级联删除前台删除执行逻辑所有者对象先进入「删除中」状态deletionTimestamp字段被设置metadata.finalizers包含foregroundDeletion。所有者对象仍可通过 API 访问垃圾收集器优先删除所有依赖对象仅阻塞blockOwnerDeletion: true的依赖对象。所有依赖对象删除完成后再删除所有者对象。特点删除操作阻塞确保依赖对象先被清理避免孤儿对象产生。关键说明blockOwnerDeletion: true的依赖对象会阻止所有者删除仅控制器如 Deployment自动创建的依赖对象会默认设置该字段手动创建的对象需显式配置。2.3 设置级联删除策略通过deleteOptions.propagationPolicy字段指定策略支持三种取值Background、Foreground、Orphan孤儿模式不删除依赖对象。2.3.1 方式 1通过 API 调用设置curl# 1. 启动 kubectl proxy便于本地调用 API kubectl proxy --port8080 # 2. Background 级联删除后台删除依赖对象 curl -X DELETE localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/my-repset -d {kind:DeleteOptions,apiVersion:v1,propagationPolicy:Background} -H Content-Type: application/json # 3. Foreground 级联删除前台删除依赖对象 curl -X DELETE localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/my-repset -d {kind:DeleteOptions,apiVersion:v1,propagationPolicy:Foreground} -H Content-Type: application/json # 4. Orphan 模式不删除依赖对象使其成为孤儿 curl -X DELETE localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/my-repset -d {kind:DeleteOptions,apiVersion:v1,propagationPolicy:Orphan} -H Content-Type: application/json2.3.2 方式 2通过 kubectl 命令设置kubectl 支持--cascade参数默认值true即级联删除# 级联删除默认删除 ReplicaSet 及关联 Pod kubectl delete replicaset my-repset --cascadetrue # 孤儿模式仅删除 ReplicaSet保留关联 Pod kubectl delete replicaset my-repset --cascadefalse2.3.3 默认策略说明对于 ReplicationController、ReplicaSet、StatefulSet、DaemonSet、Deployment 等控制器资源默认级联删除策略为Orphan即--cascadefalse需显式指定--cascadetrue才会删除依赖对象。其他资源如自定义资源默认策略可能不同建议删除时明确指定级联策略。3. 已知的问题自定义资源不支持Kubernetes 1.7 版本及之前垃圾收集不支持自定义资源如通过 CustomResourceDefinition 新增的资源、API Server 聚集的资源。权限控制Kubernetes 1.7 版本后新增准入控制器限制未授权用户设置blockOwnerDeletion: true避免恶意依赖对象阻止所有者删除。手动配置风险手动设置ownerReferences时若未正确配置blockOwnerDeletion可能导致所有者删除被阻塞或依赖对象成为孤儿。核心总结与最佳实践1. 核心价值垃圾收集器自动清理无主依赖对象避免集群资源泄露。级联删除策略灵活控制对象生命周期适配不同业务场景如快速删除 vs 安全删除。2. 最佳实践生产环境优先使用 Foreground 级联删除确保依赖对象先被清理避免孤儿对象残留如数据库 Pod 未删除导致数据不一致。明确指定级联策略删除控制器资源时显式使用--cascadetrue或propagationPolicy: Foreground避免依赖对象成为孤儿。避免手动修改 ownerReferences除非明确需求否则不手动修改ownerReferences字段防止关联关系错乱。监控孤儿对象定期检查集群中无ownerReferences的对象如kubectl get pods --all-namespaces -o jsonpath{range .items[*]}{if not .metadata.ownerReferences}{.metadata.name}{n}{end}及时清理无用资源。扩展垃圾收集相关字段详解字段作用metadata.ownerReferences关联所有者对象包含 API 版本、类型、名称、UID 等信息blockOwnerDeletion: true依赖对象阻止所有者删除仅控制器自动创建的对象默认设置deletionTimestamp所有者对象进入删除中状态的时间戳metadata.finalizers删除钩子foregroundDeletion表示前台删除模式propagationPolicy级联删除策略Background/Foreground/Orphan

相关文章:

Kubernetes 垃圾收集(Garbage Collection)完全指南:对象生命周期管理

Kubernetes 垃圾收集(Garbage Collection)完全指南:对象生命周期管理 1. Owner 和 Dependent(所有者与依赖对象) 1.1 核心概念Owner(所有者):Kubernetes 中部分对象可作为其他对象的…...

3PEAK思瑞浦 TP2582-SR SOIC-8 运算放大器

特性 供电电压:3V至36V 差分输入电压范围至电源轨输入轨至-Vs,轨到轨输出过载恢复时间 快速响应:10MHz带宽,8V/us斜率,100ns 低失调电压:在25C时最大3mV,在-40C至85C范围内最大值为3.5mV 在-40C至125C范围内最大值为4mV 极低总谐波…...

LFM2.5-VL-1.6B惊艳效果:手绘草图→物体识别+CAD建模提示词生成

LFM2.5-VL-1.6B惊艳效果:手绘草图→物体识别CAD建模提示词生成 1. 模型概述 LFM2.5-VL-1.6B是由Liquid AI推出的轻量级多模态大模型,专为边缘设备和端侧应用优化。这个1.6B参数的视觉语言模型(1.2B语言400M视觉)能够在低显存环境…...

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控

Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控 1. Before you begin(前置条件) 1.1 核心要求Kubernetes 集群需支持 NetworkPolicy API(Kubernetes 1.7 版本默认支持)。部署…...

基于RAG与本地化部署的智能文献助手Aeiva:从原理到实践

1. 项目概述:当AI遇上科研,Aeiva如何重塑文献阅读与知识管理如果你是一名科研工作者、研究生,或者任何需要深度阅读大量文献的从业者,那么你肯定对“文献焦虑”深有体会。面对海量的PDF论文,从筛选、阅读、整理到提炼核…...

前端库作者必看:如何用@babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染)

前端库作者必看:如何用babel/plugin-transform-runtime优雅地发布你的npm包(避坑全局污染) 当你准备将精心开发的前端库发布到npm时,是否考虑过你的polyfill策略可能会污染使用者的全局环境?作为库开发者,我…...

多智能体强化学习环境PettingZoo:从AEC/并行API到实战应用

1. 项目概述:从单智能体到多智能体的跃迁 如果你是从OpenAI Gym或者Gymnasium一路玩过来的强化学习爱好者,那么当你第一次尝试把研究兴趣扩展到多个智能体时,大概率会感到一阵头疼。单智能体环境里, env.reset() 、 env.step(…...

ESP32-CAM通过TCP传图,如何解决常见的网络中断和图片乱码问题?

ESP32-CAM TCP图像传输实战:破解网络中断与数据乱码的工程级方案 当你兴奋地完成ESP32-CAM的基础TCP图像传输demo后,现实往往给你当头一棒——WiFi信号波动导致频繁断连、接收到的图片出现诡异马赛克、服务端解析时内存溢出...这些才是真实开发中的常态。…...

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案

终极Windows更新修复指南:5分钟解决系统更新故障的完整方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 你是否…...

微软公司产品图谱及生态

微软公司产品图谱及生态报告日期:2026年4月25日摘要微软(Microsoft Corporation)作为全球市值最高的科技企业之一,已完成了从传统软件授权公司向云服务与人工智能平台的史诗级转型。在首席执行官萨提亚纳德拉(Satya Na…...

Conda创建环境卡在‘Solving environment: failed’?别慌,试试这3种镜像源配置方法(附.condarc文件详解)

Conda环境创建卡在Solving environment: failed的深度解决方案与镜像源配置指南 当你在使用Conda创建Python环境时遇到Solving environment: failed错误,这通常意味着Conda无法解析和满足你指定的依赖关系。这个问题在配置不当或网络连接不稳定的情况下尤为常见。本…...

谷歌 Decoupled DiLoCo:革新分布式训练,高容错低带宽提升超大规模模型训练效率!

弹性 AI 预训练新前沿:谷歌的突破弹性 AI 预训练推进到了下一个前沿,这个突破来自谷歌。他们提出的 Decoupled DiLoCo 是一种革命性的分布式训练技术,能利用全球各地的异构硬件进行训练,即便硬件发生故障,系统也不会停…...

基于安卓的社区儿童托管预约平台毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于安卓平台的社区儿童托管预约系统以解决当前城市社区中儿童托管服务供需失衡与管理效率低下等问题。随着我国城市化进程加速及双职工…...

Python系列AI系列(仅供参考-推荐):AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧

AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧AI Coding 进阶指南:Trae AI插件在Pycharm中的高效配置与实战技巧1. 为什么开发者需要Trae AI插件2. 安装与基础配置详解2.1 插件安装的正确姿势2.2 账号配置与模型选择3. 日常开发中的高…...

暗黑破坏神2存档编辑革命:告别繁琐,拥抱网页端自由定制

暗黑破坏神2存档编辑革命:告别繁琐,拥抱网页端自由定制 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经为了一个完美的暗黑2角色,反复刷图数小时却一无所获?你是否曾经因…...

抖音批量下载器:一键无水印下载,突破平台限制的终极解决方案

抖音批量下载器:一键无水印下载,突破平台限制的终极解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…...

暗黑破坏神2存档编辑神器:网页版d2s-editor完全指南

暗黑破坏神2存档编辑神器:网页版d2s-editor完全指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2存档修改而烦恼吗?d2s-editor是一款基于Vue.js开发的网页版暗黑2存档编辑器&#xf…...

算法打卡第12天|多数元素

题目链接:https://leetcode.cn/problems/majority-element/学习视频:【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/qVi0gBx【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/eIIjHvi 官方题解:https://leet…...

AI生图提示词及AI转模工具试探比较

GPT image 2 (每天8张免费额度) Tpose 正视图提示词: 帮我生成图片:帮我生成人物的Tpose,肩膀和前臂及双手向左右水平伸直,手掌朝下,手指伸直;脚垂直伸直,双脚叉开,脚掌间距为2个头…...

2026 年最新:Anthropic 注册政策变化及应对策略

2026 年 4 月,Anthropic 官方密集更新平台注册、审核、身份核验与地区风控全维度规则,结合全球 AI 监管法案收紧、模型滥用防控升级,对 Claude 网页端、开发者 API 控制台、账号准入、使用权限、封禁机制进行全方位调整。大量过往可用的注册方…...

三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南

三月七小助手:崩坏星穹铁道终极自动化游戏助手完整指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中那些重复繁…...

DamaiHelper:如何用智能自动化告别演唱会抢票焦虑?

DamaiHelper:如何用智能自动化告别演唱会抢票焦虑? 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 当热门演唱会门票开售时,你是否经历过这样的场景&#xff1…...

【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 音频播放功能适配与实现指南

Flutter for OpenHarmony 音频播放功能适配与实现指南 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 摘要 在 OpenHarmony 生态持续扩张与 Flutter 跨平台开发深度融合的背景下,存量 Flutter 应用向鸿蒙终端迁移的技术需求日益…...

AiPy帮我工作后,我开始躺平摸鱼

作为一名某互联网公司摸爬滚打三年的运营分析师,我最近上班幸福感直线上升——没有涨工资,leader也没有请假,是因为我找到工作摸鱼的真神:AiPy。体验了不到一个月,就已经为我解决了太多工作痛点,让我从无休…...

别再让C++控制台输出乱糟糟了!用<iomanip>库的setw和setfill轻松搞定表格对齐

别再让C控制台输出乱糟糟了&#xff01;用库的setw和setfill轻松搞定表格对齐 每次在控制台输出表格数据时&#xff0c;那些参差不齐的列宽和混乱的对齐方式&#xff0c;是不是让你抓狂&#xff1f;作为一名C开发者&#xff0c;我深知这种痛苦。直到发现<iomanip>库中的s…...

Yoga Pro 14s装完Win11+Ubuntu 22.04,开机直接进Windows?手把手教你进Grub救援模式找回启动菜单

Yoga Pro 14s双系统启动项丢失&#xff1f;Grub救援模式实战指南 刚入手Yoga Pro 14s的兴奋还没褪去&#xff0c;就遭遇了双系统用户的经典噩梦——安装完Windows 11和Ubuntu 22.04后&#xff0c;开机直接进入Windows&#xff0c;Ubuntu仿佛从未存在过。这不是个例&#xff0c;…...

UnityFigmaBridge终极指南:从设计到开发的完整高效协作方案

UnityFigmaBridge终极指南&#xff1a;从设计到开发的完整高效协作方案 【免费下载链接】UnityFigmaBridge Easily bring your Figma Documents, Components, Assets and Prototypes to Unity 项目地址: https://gitcode.com/gh_mirrors/un/UnityFigmaBridge 你是否曾为…...

ComfyUI IPAdapter Plus完整指南:轻松实现图像引导AI生成

ComfyUI IPAdapter Plus完整指南&#xff1a;轻松实现图像引导AI生成 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus 想要让AI生成的图像完美融合你的参考图片风格吗&#xff1f;ComfyUI IPAdapter Plu…...

Windows/Mac双平台实测:用Git Bash和Idea内置终端搞定GitLab SSH Key配置全流程

Windows与macOS双平台实战&#xff1a;GitLab SSH Key配置与IntelliJ IDEA无缝集成指南 跨平台开发已成为现代团队的常态&#xff0c;但不同操作系统间的配置差异常常让开发者头疼。本文将手把手带你完成从SSH密钥生成到IntelliJ IDEA集成的全流程&#xff0c;特别针对Windows&…...

解耦管理化技术中的解耦计划解耦实施解耦验证

解耦管理化技术是现代系统工程中的关键方法&#xff0c;旨在通过解耦计划、解耦实施和解耦验证三个核心环节&#xff0c;实现复杂系统模块化与高效协同。这一技术广泛应用于软件开发、智能制造和供应链管理等领域&#xff0c;能够显著降低系统耦合度&#xff0c;提升灵活性与可…...