栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

k8s存储资源ConfigMap与Secret

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s存储资源ConfigMap与Secret

目录

ConfigMap

示例

Secret

示例

其他方式创建configmap和secret

应用程序动态更新配置方案:


ConfigMap ConfigMap是一个K8s存储资源,用于存储应用程序配置文件。 Pod使用configmap数据有两种方式: • 变量注入 • 数据卷挂载 示例:

示例 先创建一个configMap
vi configMap.yaml
apiVersion: v1 kind: ConfigMap metadata:   name: configmap-demo data:   abc: "123"   cde: "456"   redis-config: |     port: 6379     host: 192.168.31.10     {'aaa': 123} kubectl apply -f configMap.yaml kubectl get configmap
可以看到这个configmap上面对应有有三个数据 创建测试pod引用
vi pod.yaml
apiVersion: v1 kind: Pod metadata:   name: configmap-demo-pod spec:   containers:     - name: web       image: nginx       env:         - name: ABCD           valueFrom:             configMapKeyRef:               name: configmap-demo               key: abc         - name: CDEF           valueFrom:             configMapKeyRef:               name: configmap-demo               key: cde       volumeMounts:       - name: config         mountPath: "/config"         readOnly: true   volumes:     - name: config       configMap:         name: configmap-demo         items:         - key: "redis-config"           path: "redis.properties"
kubectl apply -f pod.yaml
容器运行成功后进入容器 可以看到写入configmap的变量都写入了 挂载数据也挂载完成

Secret Secret与ConfigMap类似,区别在于Secret主要存储敏感数据。 可存储以下三种数据类型: • docker-registry(kubernetes.io/dockerconfigjson):存储镜像仓库认证信息 • generic(Opaque):存储密码、密钥等(yaml里数据需经过base64编码) • tls(kubernetes.io/tls):存储TLS证书 secret用来存加密数据,所以其中数据都有经过加密算法加密过, 示例 先将密码base64脱敏 echo -n 'aliang' |base64 写一个测试yaml
vi secret.yaml
apiVersion: v1 kind: Secret metadata:   name: db-user-pass type: Opaque data:   username: YWxpYW5n   password: MTIzNDU2
执行 查看k8s内所有secret存储
kubectl get secret
创建pod引用此secret
vi pod-secret.yaml
apiVersion: v1 kind: Pod metadata:   name: secret-demo-pod spec:   containers:     - name: demo       image: nginx       env:         - name: USER           valueFrom:             secretKeyRef:               name: db-user-pass               key: username         - name: PASS           valueFrom:             secretKeyRef:               name: db-user-pass               key: password       volumeMounts:       - name: config         mountPath: /config         readOnly: true   volumes:     - name: config       secret:         secretName: db-user-pass         items:         - key: username           path: my-username
执行 进入pod测试 注意:变量都在env中 成功

其他方式创建configmap和secret cronjob是本地的文件,可以是其他的
kubectl create configmap test --from-file=yaml666=CronJob.yaml
可以看到test创建成功 打开test的详细信息,可以看见此yaml已经被引用

应用程序动态更新配置方案: 即当程序配置文件更新后,成功需要响应新配置文件的话 • 当ConfigMap发生变更时,应用程序自动感知动态加载(需要程序自身支持) • 触发滚动更新,即重启服务  • 给程序预留一个接口,用于通知动态加载配置(Sidecar),例如nginx -s reload

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号