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:09 阅读更多 →
Python openpyxl实现Excel自动列宽:告别手动调整,提升报表自动化质量

Python openpyxl实现Excel自动列宽:告别手动调整,提升报表自动化质量

1. 项目概述:为什么Excel列宽是个“技术活”?做报表、导数据,只要是和Excel打交道,几乎没人能绕过“调整列宽”这个看似简单却无比磨人的步骤。手动拖拽吧,数据一多就变成体力活;用默认的“自动调整列宽”功…

2026/8/2 21:42:09 阅读更多 →
League Akari:英雄联盟玩家的智能数据分析伴侣

League Akari:英雄联盟玩家的智能数据分析伴侣

League Akari:英雄联盟玩家的智能数据分析伴侣 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟这款全球热门的竞技游戏中…

2026/8/2 21:42:09 阅读更多 →

最新新闻

STM32驱动旋转编码器:从原理到实战,实现精准人机交互

STM32驱动旋转编码器:从原理到实战,实现精准人机交互

1. 项目概述:从“转”到“数”的桥梁 旋转编码器,这个在工业控制、消费电子乃至我们日常家电中无处不在的小玩意儿,对于很多刚接触STM32这类微控制器的朋友来说,可能既熟悉又陌生。熟悉是因为我们每天都在“旋转”——鼠标滚轮、多…

2026/8/2 22:18:34 阅读更多 →
AI时代就业危机?美国大学生毕业即失业,全球大厂裁员潮来袭!AI大模型相关岗位成为就业新宠?

AI时代就业危机?美国大学生毕业即失业,全球大厂裁员潮来袭!AI大模型相关岗位成为就业新宠?

不开玩笑,AI带来的全球失业潮,是真的来了! 从前,这种呼声只是零星从某些人嘴里被预言,但现在,主流的媒体已经全面认识到了这一事实:人工智能,将彻底改变全球的劳动力市场。 最近&a…

2026/8/2 22:18:34 阅读更多 →
Nohost分布式抓包架构设计:破解多团队HTTPS调试的3倍效率提升难题

Nohost分布式抓包架构设计:破解多团队HTTPS调试的3倍效率提升难题

Nohost分布式抓包架构设计:破解多团队HTTPS调试的3倍效率提升难题 【免费下载链接】nohost 基于 Whistle 实现的多账号多环境远程配置及抓包调试平台 项目地址: https://gitcode.com/gh_mirrors/no/nohost 在微服务架构和云原生技术成为主流的今天&#xff0…

2026/8/2 22:18:34 阅读更多 →
php-vips API详解:掌握libvips强大功能的PHP开发者手册

php-vips API详解:掌握libvips强大功能的PHP开发者手册

php-vips API详解:掌握libvips强大功能的PHP开发者手册 【免费下载链接】php-vips php binding for libvips 项目地址: https://gitcode.com/gh_mirrors/ph/php-vips php-vips是libvips图像处理库的PHP绑定,为PHP开发者提供了高效的图像处理能力。…

2026/8/2 22:18:34 阅读更多 →
Marin核心组件架构:深入理解分布式训练引擎原理

Marin核心组件架构:深入理解分布式训练引擎原理

Marin核心组件架构:深入理解分布式训练引擎原理 【免费下载链接】marin Open-source framework for the research and development of foundation models. 项目地址: https://gitcode.com/gh_mirrors/ma/marin Marin作为开源基础模型研发框架,其分…

2026/8/2 22:18:34 阅读更多 →
如何快速掌握tchMaterial-parser:面向新手的电子课本下载完整指南

如何快速掌握tchMaterial-parser:面向新手的电子课本下载完整指南

如何快速掌握tchMaterial-parser:面向新手的电子课本下载完整指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。…

2026/8/2 22:17:34 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

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

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

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

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

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

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

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

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →