18-Kustomize 配置管理
Kustomize 配置管理概念引入文章 17 学了 Helm——用模板 values 管理配置。但 Helm 有一个特点你的 YAML 里全是{{ .Values.xxx }}不渲染出来就看不懂。Kustomize 走了另一条路——不写模板只写补丁。Base 是完整的工作配置overlay 只写和 base 不同的地方Helm 方式 Kustomize 方式 ───────── ───────────── base: 有 code v-pre{{ 占位符 }}/code 的模板 base: 完整可用的 YAML env: values.yaml 填入值 env: 只写差异patch 你看模板时 → 这到底渲染出来是啥 你看 base 时 → ✅ 这就是 staging 的完整配置可以直接 kubectl applyOverlay: Stagingkustomization.yamlpatches replicas: 2image: myapp:1.0-rcOverlay: Productionkustomization.yamlpatches replicas: 5image: myapp:1.0-prodBase基础配置deployment.yamlimage: myapp:1.0replicas: 2service.yamlport: 80学完本篇你将能够用 base overlay 目录结构管理多环境dev/staging/prod配置编写 kustomization.yaml通过 patches 覆盖副本数、镜像标签等差异用kubectl apply -k一键部署无需额外模板引擎原理讲解目录结构├── base/ │ ├── deployment.yaml # 通用 Deployment │ ├── service.yaml # 通用 Service │ └── kustomization.yaml # 列出 base 包含哪些资源 │ └── overlays/ ├── staging/ │ ├── kustomization.yaml # 引用 base 补丁 │ └── replica-count.yaml # 只改副本数 │ └── production/ ├── kustomization.yaml ├── replica-count.yaml └── image-tag.yamlkustomization.yaml 核心字段base/kustomization.yamlapiVersion:kustomize.config.k8s.io/v1beta1kind:Kustomizationresources:-deployment.yaml-service.yamloverlays/production/kustomization.yamlapiVersion:kustomize.config.k8s.io/v1beta1kind:Kustomization# 引用 baseresources:-../../base# 打标签commonLabels:env:production# 改镜像images:-name:myappnewTag:1.0-prod# 改副本数通过 patchpatches:-path:replica-count.yamloverlays/production/replica-count.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:myappspec:replicas:5常用功能功能写法效果改镜像images:修改 Deployment 的 image tag打标签commonLabels:给所有资源统一加 label加注解commonAnnotations:给所有资源统一加 annotation补丁patches:只修改特定字段JSON Patch 或 Strategic Merge生成 ConfigMapconfigMapGenerator:从文件自动生成 ConfigMap带 content hash触发滚动更新生成 SecretsecretGenerator:从文件/字面量自动生成 Secret名前缀namePrefix:加前缀区分环境ConfigMap Generator 的杀手特性# overlays/production/kustomization.yamlconfigMapGenerator:-name:app-configfiles:-config.properties# 从文件读取内容behavior:merge# 合并到 base 已有的 ConfigMap自动 hash每次 config.properties 内容变化Kustomize 会自动生成不同的 ConfigMap 名称如app-config-7km8f29h4dDeployment 引用这个新名字 → 触发 Pod 滚动更新。改了配置就自动更新不需要手动重启。Kustomize vs Helm 选型✅ 是❌ 差异大✅ 是❌ 自己用✅ 是需要更复杂逻辑你需要什么YAML 差异小环境间只是副本数/镜像不同Kustomizebase overlay简单直观需要分发/共享团队间或社区共享 ChartHelmChart values 模板化生态好Chart 仓库多用 kubectl 就够了Kustomizekubectl 原生集成kubectl apply -k ./overlays/prodHelm条件/循环/函数特性HelmKustomize学习曲线中等Go template 语法低就是 YAML原生集成helm installkubectl apply -k模板能力✅ 条件/循环/函数❌ 无模板只改字段社区生态✅ 大量第三方 Chart❌ 无中央仓库可读性模板不直观✅ 随时可读多环境values 文件切换overlay 目录动手实验配套实验位于docs/labs/beginner/kustomize/步骤 1部署实验环境cddocs/labs/beginner/kustomizebashsetup.sh步骤 2查看 base 和 overlay 的结构# 查看目录结构ls-Rbase/ overlays/# 预览渲染结果kustomize build 输出完整 YAMLkubectl kustomize base/ kubectl kustomize overlays/staging/ kubectl kustomize overlays/production/步骤 3部署 staging 和 production 到不同 Namespace# 部署到 staging namespacekubectl apply-koverlays/staging/# 部署到 production namespacekubectl apply-koverlays/production/# 对比两个环境的差异kubectl get deploy-nstaging-owide kubectl get deploy-nproduction-owide# 预期production 副本数更多步骤 4验证 ConfigMap Generator 的自动 hash# 查看生成的 ConfigMap 名称kubectl get configmap-nproduction# 输出类似 app-config-7km8f29h4d带 hash# Deployment 自动引用了带 hash 的名字kubectl get deploy-nproduction-ojson|jq-r.items[0].spec.template.spec.volumes[] | select(.nameconfig) | .configMap.name步骤 5清理bashteardown.sh自检问题[基础]Helm 用{{ .Values.replicas }}模板Kustomize 用什么方式处理环境差异[理解]Kustomize 的 ConfigMap Generator 会给 ConfigMap 名字加 hash这解决了什么问题[应用]你的团队目前用 Helm 管理 3 个环境dev/staging/prod但每次看模板都很难直观理解。改成 Kustomize 后目录结构怎么设计查看答案Kustomize 用patch补丁方式。Base 目录是一份完整的、可以直接部署的 YAML。每个 overlay 只需要写 kustomization.yaml 少量补丁文件描述和 base 的差异改镜像 tag、改副本数、加 label 等。不写模板不写占位符。解决了ConfigMap 更新后 Pod 不重启的经典问题。ConfigMap 内容变了Kustomize 生成新的 hash → ConfigMap 名字变了 → Deployment 的引用变了 → 触发 Pod 滚动更新。之前你需要手动改 Deployment 的 annotation 或重启 Pod现在自动完成。app/ ├── base/ │ ├── deployment.yaml │ ├── service.yaml │ └── kustomization.yaml │ ├── overlays/ │ ├── dev/ │ │ ├── kustomization.yaml # replicas: 1, image: dev │ │ └── debug-sidecar.yaml # 仅 dev 加 debug 容器 │ │ │ ├── staging/ │ │ ├── kustomization.yaml # replicas: 2, image: rc │ │ └── ingress.yaml # staging 专用域名 │ │ │ └── production/ │ ├── kustomization.yaml # replicas: 5, image: prod │ ├── resource-limits.yaml # 生产资源配置 │ └── pdb.yaml # 生产可用性保障部署kubectl apply -k overlays/production/下一步配置管理有两条路可选了。接下来学习怎么运维 K8s 集群本身→ 29. 集群升级与维护 本文来自 K8s Guide —— 开源免费的 Kubernetes 中文学习指南️ 初学者轨道 面试轨道从零基础到拿 Offer 一站式覆盖 每篇文章配套 Kind 实验脚本本地一键运行 本文源码docs/beginner/20-gateway-api.md⭐ 如果对你有帮助欢迎 Star github.com/callmebg/k8s-guide

相关新闻

为什么选择Android Pluto?3个决定性优势深度解析

为什么选择Android Pluto?3个决定性优势深度解析

为什么选择Android Pluto?3个决定性优势深度解析 【免费下载链接】pluto Android Pluto is a on-device debugging framework for Android applications, which helps intercept Network calls, capture Crashes & ANRs, manipulate application data on-the-go…

2026/8/2 21:43:43阅读更多 →
Unity编辑器OnOpenAssetAttribute报错:Shader Graph打不开的根源与系统化修复

Unity编辑器OnOpenAssetAttribute报错:Shader Graph打不开的根源与系统化修复

1. 项目概述:一个困扰Unity开发者的典型编辑器报错如果你在Unity开发中,尤其是处理Shader相关资源时,遇到了一个弹窗,标题是“Exception thrown while invoking [OnOpenAssetAttribute] method ‘UnityEditor...”,那么…

2026/8/2 21:43:43阅读更多 →
C++、Java、Python反射机制对比:从原理到实战应用

C++、Java、Python反射机制对比:从原理到实战应用

1. 项目概述:为什么我们需要对比学习反射?在编程世界里,我们常常需要“让程序认识自己”。比如,你写了一个类,程序运行时,能不能动态地知道这个类有哪些方法、哪些属性,甚至动态地调用它们&…

2026/8/2 21:43:43阅读更多 →
开源项目管理工具Plane:如何用现代化工作流替代Jira和Linear?

开源项目管理工具Plane:如何用现代化工作流替代Jira和Linear?

开源项目管理工具Plane:如何用现代化工作流替代Jira和Linear? 【免费下载链接】plane 🔥🔥🔥 Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage…

2026/8/2 22:58:08阅读更多 →
AR眼镜行业深度解析:从XREAL财报看消费级AR的技术挑战与商业逻辑

AR眼镜行业深度解析:从XREAL财报看消费级AR的技术挑战与商业逻辑

1. 从“第一股”光环看AR眼镜的冰与火最近,XREAL(原Nreal)冲刺“AR眼镜第一股”的消息在科技圈和投资圈都激起了不小的水花。一家成立9年、融资超过22亿人民币的公司,在年营收冲到5亿量级的同时,却依然背负着年净亏损4…

2026/8/2 22:58:08阅读更多 →
DeepSWE:113个真实编程任务评测AI编码代理的终极指南

DeepSWE:113个真实编程任务评测AI编码代理的终极指南

DeepSWE:113个真实编程任务评测AI编码代理的终极指南 【免费下载链接】deep-swe Measuring frontier coding agents on original, long-horizon engineering tasks 项目地址: https://gitcode.com/gh_mirrors/de/deep-swe DeepSWE是一个专注于评测前沿AI编码…

2026/8/2 22:58:08阅读更多 →
Claude HUD终极指南:3分钟掌握Claude Code实时状态监控神器

Claude HUD终极指南:3分钟掌握Claude Code实时状态监控神器

Claude HUD终极指南:3分钟掌握Claude Code实时状态监控神器 【免费下载链接】claude-hud A Claude Code plugin that shows whats happening - context usage, active tools, running agents, and todo progress 项目地址: https://gitcode.com/GitHub_Trending/c…

2026/8/2 22:58:08阅读更多 →
Demo跑通就敢投大模型岗位?面试官最看重这三件事

Demo跑通就敢投大模型岗位?面试官最看重这三件事

聊《一份看似完整的计算机专业就业方案,为什么投递时没效果?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:很多计算机专业的学生做了一堆大模型项目,…

2026/8/2 22:58:08阅读更多 →
STM32延时编程:从阻塞到非阻塞,实现高效多任务处理

STM32延时编程:从阻塞到非阻塞,实现高效多任务处理

1. 项目概述:从“卡死”到“流畅”的思维跃迁在嵌入式开发,尤其是STM32这类资源受限的单片机世界里,“延时”是一个再基础不过的操作。新手入门,第一个点亮的LED灯,大概率是靠一个简单的for循环或者while循环来实现闪烁…

2026/8/2 22:56:08阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/2 2:32:55阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/2 2:09:20阅读更多 →