Kubernetes学习记录(七):Secret和Configmap
1. Secret
加密数据并存放在etcd中,让pod内容器以挂载volume方式访问
应用场景:凭据、用户名密码、https证书、docker仓库认证
pod使用secret的两种方式:
- 变量注入
- 挂载
1.1 secret使用
首先创建一个secret来保存一个常规的用户名和密码
如果我们要存放一个用户名和密码的话,也不建议直接在YAML文件中体现,一般而言会做一个简单的编码,这样在查看资源配置的时候不至于直接输密码
echo -n 'admin' | base64 echo -n '1f2d1e2e67df' | base64
然后编写一个最简单的Secret资源,可以把data字段中的值理解为key-value形式
创建资源
kubectl apply -f secret_var.yaml
如果想要以变量注入的形式来让pod使用这个用户名和密码,我们需要在创建pod的YAML文件中选择使用env字段
valueFrom指明这个变量值来自于哪个资源,secretKeyRef表示这个值来自于名为mysecret的secret资源,key为username
这样就完成了username和password的变量注入,而在容器中就可以使用SECRET_USERNAME和SECRET_PASSWORD
以挂载的方式使用secret,需要在创建pod的YAML文件中声明要使用的secret资源
这样一来secret所保存的用户名和密码都会被挂载到pod内的/etc/foo目录下,容器只需要读取这个目录下的文件就可以完成配置
文件名就是key的名字,即username
2. Configmap
Configmap和Secret的使用几乎是一样的,不过其应用场景是多用于配置信息的分发
3. 应用程序如何动态更新配置
configmap和secret修改了,如何在pod中实现更新?
- 重建pod
- 应用程序实现watch etcd中的配置文件,发现变化更新配置信息
- 使用sidecar的逻辑监听配置更新,启用一个辅助容器来监听
如果脱离k8s,可以采用配置中心的方式
分类:
分布式
, kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南