Kubernetes 配置管理
【摘要】 许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 提供了向容器中注入配置信息的机制。Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。
1.简介
许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 提供了向容器中注入配置信息的机制。Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。
2. ConfigMap
2.1 创建 ConfigMap
2.1.1 使用目录或文件创建


2.1.2 使用字面值创建


2.1.3 配置文件创建


2.2 使用 ConfigMap 替换环境变量



2.3 通过数据卷插件使用 ConfigMap
2.3.1 方式一



2.3.2 方式二



2.3.3 方法一和方法二会覆盖容器中的 /etc/config 目录内容,这是不希望发生的


2.4 ConfigMap 的热更新
使用 kubectl edit configmap <configMap> 对configMap 进行更新后,需要注意:
- 使用该 ConfigMap 挂载的 Env 不会同步更新,需要 Pod 更新后生效
- 使用该 ConfigMap 挂载的 Volume 中的数据需要一段时间(实测大概10秒)才能同步更新
3. Secret
Secret 有三种类型:
- Service Account:用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中
- Opaque:base64编码格式的Secret,用来存储密码、密钥等
- kubernetes.io/dockerconfigjson:用来存储私有 docker registry 的认证信息。参考 kubectl create secret -h
主要介绍 Opaque Secret:
3.1 创建 Secret
3.1.1 通过命令创建 Secret

3.1.2 通过配置文件创建 Secret




3.2 使用方式
3.2.1 将 Secret 挂载到 Volume 中



3.2.2 将 Secret 导出到环境变量中



4. configMap 和 Secret 不可变

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)