2.2 K8s 配置管理:ConfigMap、Secret 与健康检查的生产级实践
2026/7/16 17:12:10 网站建设 项目流程

2.2 K8s 配置管理:ConfigMap、Secret 与健康检查的生产级实践

1. 引言:从硬编码到配置中心

在“石器时代”,开发者喜欢把数据库地址写死在代码里:
String url = "jdbc:mysql://192.168.1.100:3306/mydb";
一旦数据库迁移,就要修改代码、重新编译、重新打包、重新发布。这简直是灾难。

后来进化到了“配置文件时代”,我们把配置写在application.properties里。虽然不用改代码了,但每次改配置还得重新打镜像。

Kubernetes 带来了原生配置中心的能力:ConfigMapSecret
它们实现了“配置与镜像解耦”——镜像是不变的(Immutable),配置是可插拔的。

本节我们将深入挖掘 K8s 配置管理的各种高级玩法,包括配置热更新、密钥安全管理,以及决定应用生死的健康检查机制。


2. ConfigMap 的核心用法与热更新

ConfigMap (CM)用于存储非敏感的文本配置(如config.ini,nginx.conf,application.yaml)。

2.1 注入方式对比

假设我们有一个game-configConfigMap:

apiVersion:v1kind:ConfigMapmetadata:name:game-configdata:player_lives:"3"ui_properties:|color=blue size=large
方式 A:环境变量注入 (Environment Variables)

适合简单的 Key-Value 配置。

env:-name:PLAYER_LIVESvalueFrom:configMapKeyRef:name:game-configkey:player_lives
  • 优点:简单,符合 12-Factor App 原则。
  • 缺点不支持热更新。修改 ConfigMap 后,Pod 里的环境变量不会变,必须重启 Pod 才能生效。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询