Kubernetes ConfigMap 与 Secret 的正确用法:别再把密码写进镜像
Kubernetes ConfigMap 与 Secret 的正确用法:别再把密码写进镜像刚上手 K8s 的人常犯一个错:把数据库密码、API key 直接写进 Dockerfile 或代码里,镜像一推仓库就全世界可见了。ConfigMap 和 Secret 就是来解决「配置和代码分离」的。今天把这俩讲透:怎么创建、怎么挂载、Secret 到底安不安全、改了配置要不要重启。ConfigMap:存非敏感配置ConfigMap 装的是明文配置:日志级别、功能开关、第三方服务地址等。创建方式有三种。命令行直接给键值:kubectl create configmap app-config\--from-literalLOG_LEVELinfo\--from-literalMAX_CONN100从文件创建(整个文件作为一个 value):kubectl create configmap nginx-config --from-filenginx.conf或者直接写 YAML,推荐这种,能进 Git 版本管理:apiVersion:v1kind:ConfigMapmetadata:name:app-configdata:LOG_LEVEL:infoMAX_CONN:100app.properties:|# 也能存整段配置文件server.port8080 server.timeout30sSecret:存敏感数据Secret 的用法和 ConfigMap 几乎一样,专门装密码、token、证书。创建时 kubectl 会帮你 base64 编码:kubectl create secret generic db-secret\--from-literalDB_PASSWORDmy-super-secret写 YAML 时要注意,data字段的值必须是已经 base64 编码过的:apiVersion:v1kind:Secretmetadata:name:db-secrettype:Opaquedata:DB_PASSWORD:bXktc3VwZXItc2VjcmV0# echo -n my-super-secret | base64嫌手动编码麻烦,可以用stringData字段直接写明文,K8s 会自动编码:apiVersion:v1kind:Secretmetadata:name:db-secrettype:OpaquestringData:DB_PASSWORD:my-super-secret# 用 stringData 就不用自己 base64关键认知:base64 不是加密!这是新手最大的误区。base64 是编码,不是加密,谁都能一秒解开:echobXktc3VwZXItc2VjcmV0|base64-d# 输出:my-super-secret所以 Secret 默认状态下,只是比 ConfigMap 多了「不直接明文显示」这层遮羞布。真正要保证安全,你得做三件事:开启 etcd 静态加密(EncryptionConfiguration),让 Secret 在 etcd 里落盘时是加密的;用 RBAC 限制谁能读 Secret,别给所有 ServiceAccount 开 get secrets 权限;生产环境考虑外部方案,如Vault、云厂商的 Secrets Manager,配合 External Secrets Operator 同步。别把 Secret 的 YAML(哪怕是 base64 的)提交到公开 Git 仓库,那和明文没区别。两种挂载方式:环境变量 vs 卷挂给 Pod 有两种方式,各有取舍。方式一:注入成环境变量,适合少量配置:spec:containers:-name:appimage:myapp:1.0envFrom:-configMapRef:name:app-config# 把整个 ConfigMap 灌成环境变量env:-name:DB_PASSWORDvalueFrom:secretKeyRef:# 单独引用 Secret 的某个 keyname:db-secretkey:DB_PASSWORD方式二:挂载成文件(卷),适合配置文件、证书:spec:containers:-name:appimage:myapp:1.0volumeMounts:-name:config-volmountPath:/etc/config# 每个 key 变成该目录下一个文件volumes:-name:config-volconfigMap:name:app-config挂载后/etc/config/LOG_LEVEL就是一个内容为info的文件。大坑:改了 ConfigMap,Pod 不会自动感知这是运维最容易栽的地方,分两种情况:环境变量方式:环境变量在容器启动时就固定了,之后改 ConfigMap永远不会生效,必须重建 Pod(kubectl rollout restart deployment/xxx)。卷挂载方式:kubelet 会定期同步(默认约 1 分钟),文件内容会自动更新——但你的应用得自己监听文件变化重新加载,否则进程里的旧配置照样不变。想让配置变更强制滚动更新,常见做法是给 Pod 模板加一个基于 ConfigMap 内容的注解(如 checksum),内容一变注解就变,触发 Deployment 滚动:spec:template:metadata:annotations:# 用 configmap 的 hash 当注解,内容变则触发滚动更新checksum/config:{{ sha256sum(configmap.data) }}Helm 用户可以直接{{ include (print $.Template.BasePath /configmap.yaml) . | sha256sum }},这是社区标准套路。小结ConfigMap 存非敏感配置,Secret 存密码/证书,用法几乎一样。base64 不是加密,Secret 默认不安全:必须配 etcd 静态加密 RBAC,生产上外接 Vault/云 Secrets Manager。挂载分环境变量和卷两种:少量配置用 env,配置文件/证书用卷。环境变量方式改配置必须重启 Pod;卷方式文件会自动更新,但应用要自己 reload。想强制滚动就用 configmap hash 注解。记忆点:Secret 的 base64 是遮羞布不是保险箱;环境变量注入的配置改了不重启永远不生效。

相关新闻

Java Optional 别再乱用:90% 的人都把它当空值检查了

Java Optional 别再乱用:90% 的人都把它当空值检查了

Java Optional 别再乱用:90% 的人都把它当空值检查了 Optional 从 Java 8 引入到现在,我见过太多这样的代码: Optional<User> opt findUser(id); if (opt.isPresent()) {User user opt.get();// ... }这写法能跑,但它把 Optional 用成了「换了张皮的 null 检查」,完全没…

2026/7/17 9:50:11 阅读更多 →
Ghidriff核心功能详解:从基础到高级的二进制差异分析技巧

Ghidriff核心功能详解:从基础到高级的二进制差异分析技巧

Ghidriff核心功能详解&#xff1a;从基础到高级的二进制差异分析技巧 【免费下载链接】ghidriff Python Command-Line Ghidra Binary Diffing Engine 项目地址: https://gitcode.com/gh_mirrors/gh/ghidriff Ghidriff是一个基于Ghidra的命令行二进制差异分析引擎&#x…

2026/7/17 9:48:10 阅读更多 →
OpenClaw 一键部署全攻略|环境搭建 + 配置 + 启动,一步到位open-claw.me

OpenClaw 一键部署全攻略|环境搭建 + 配置 + 启动,一步到位open-claw.me

OpenClaw&#xff08;小龙虾&#xff09;Windows 一键部署实操手册&#xff5c;十分钟搭建专属本地数字员工 适配平台&#xff1a;Windows 10/11&#xff08;64 位&#xff09;&#xff5c;零基础友好&#xff5c;全可视化界面&#xff5c;无编程门槛 当下热度较高的开源 AI 智…

2026/7/17 9:46:09 阅读更多 →

最新新闻

FPGA视频处理与AI加速系统设计实战

FPGA视频处理与AI加速系统设计实战

1. 项目背景与赛题解析 2023年全国大学生集成电路创新创业大赛紫光同创杯的赛题聚焦于FPGA视频处理系统的创新设计。这个赛题要求参赛团队基于紫光同创MES50HP开发板&#xff0c;构建一个完整的视频采集、处理和AI加速系统。作为评委特别推荐的作品&#xff0c;这个多通道高性能…

2026/7/17 10:46:44 阅读更多 →
AI智能体工程师:从基础到实战的10个关键步骤

AI智能体工程师:从基础到实战的10个关键步骤

1. 为什么需要AI智能体工程师&#xff1f; 在2023年这个AI技术爆发的关键节点&#xff0c;AI智能体工程师正在成为科技行业最炙手可热的职位之一。根据LinkedIn最新发布的《2023年新兴就业报告》&#xff0c;AI相关岗位的需求量同比增长了74%&#xff0c;其中AI智能体开发工程师…

2026/7/17 10:44:42 阅读更多 →
如何快速掌握WrenAI:面向初学者的完整文本转SQL智能分析指南

如何快速掌握WrenAI:面向初学者的完整文本转SQL智能分析指南

如何快速掌握WrenAI&#xff1a;面向初学者的完整文本转SQL智能分析指南 【免费下载链接】WrenAI GenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards…

2026/7/17 10:42:41 阅读更多 →
终极指南:在笔记本电脑上部署Ternary-Bonsai-27B-gguf实现262K超长上下文处理

终极指南:在笔记本电脑上部署Ternary-Bonsai-27B-gguf实现262K超长上下文处理

终极指南&#xff1a;在笔记本电脑上部署Ternary-Bonsai-27B-gguf实现262K超长上下文处理 【免费下载链接】Ternary-Bonsai-27B-gguf 项目地址: https://ai.gitcode.com/hf_mirrors/prism-ml/Ternary-Bonsai-27B-gguf 想要在普通笔记本电脑上运行27B参数的大语言模型吗…

2026/7/17 10:42:41 阅读更多 →
终极E7Helper自动化助手:释放双手的第七史诗智能伴侣指南

终极E7Helper自动化助手:释放双手的第七史诗智能伴侣指南

终极E7Helper自动化助手&#xff1a;释放双手的第七史诗智能伴侣指南 【免费下载链接】e7Helper 【Epic Seven Auto Bot】第七史诗多功能覆盖脚本(刷书签&#x1f343;&#xff0c;挂讨伐、后记、祭坛✌️&#xff0c;挂JJC等&#x1f4db;&#xff0c;多服务器支持&#x1f4f…

2026/7/17 10:40:40 阅读更多 →
li-wen核心组件分析:auto_extend模块的工作原理与实现

li-wen核心组件分析:auto_extend模块的工作原理与实现

li-wen核心组件分析&#xff1a;auto_extend模块的工作原理与实现 【免费下载链接】li-wen Tool for dynamic management of worker resources in OBS-Build system 项目地址: https://gitcode.com/openeuler/li-wen 前往项目官网免费下载&#xff1a;https://ar.openeu…

2026/7/17 10:40:40 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网&#xff0c;核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验&#xff0c;企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明&#xff0c;以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中&#xff0c;卡片翻转动画是最受欢迎的交互动效之一&#xff0c;它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面&#xff08;CourseHomePage.ets&#xff09;中&#xff0c;就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘&#xff0c;既能满足交流码字的需求&#xff0c;又能应对居家电竞的性能需求&#xff0c;最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色&#xff08;银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试&#xff1a;燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午&#xff0c;互联网大厂的面试官坐在桌前&#xff0c;准备迎接他的面试候选人——燕双非&#xff0c;一个以搞笑和幽默著称的程序员。第一轮提问 面试官&#xff1a;燕双非&#xff0c;作…

2026/7/17 3:22:28 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型&#xff1a;示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天&#xff0c;车载以太网作为新一代车载网络的核心传输技术&#xff0c;其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/17 3:01:28 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0&#xff1a;APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时&#xff0c;往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻