k8s之 应用程序配置文件存储ConfigMap和Secret

Posted Linux蛋蛋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s之 应用程序配置文件存储ConfigMap和Secret相关的知识,希望对你有一定的参考价值。

作用:创建ConfigMap后,数据实际会存储再K8S中etcd集群中,然后通过创建pod时引用该数据。
应用场景: 应用程序配置

Pod使用configmap数据有两种:
1.变量注入
2.数据卷挂载

具体用法如下

1.0创建变量值写入etcd cat configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: game-demo                #变量名称
data:
  abc: "123"                  #变量1
  cde: "456"                  #变量2
  redis.properties: |         #变量3  |后面可以跟多个值
   port: 6379
   host: 192.168.31.10

kubectl apply -f configmap.yaml

1.1 检测是否创建成功

在这里插入图片描述

2.0创建一个应用pod并引用变量

cat map.yaml

apiVersion: v1
kind: Pod
metadata:
  name: configmap-demo-pod
spec:
  containers:
    - name: demo
      image: nginx
      env:
        - name: zhangsan
          valueFrom:
            configMapKeyRef:
              name: configmap-demp           # 这个值来自 ConfigMap
              key: abc                       # 需要取值的key键
        - name: lisi
          valueFrom:
            configMapKeyRef:
              name: configmap-demp
              key: cde
      volumeMounts:
      - name: config
        mountPath: "/config"
        readOnly: true
  volumes:
    - name: config
      configMap:
        name: configmap-demp              #数据卷形式挂载,定义读取哪个configmap
        items:
        - key: "redis.properties"         #key
          path: "redis.properties"        #容器目录
测试

在这里插入图片描述
0.1 说明成功引用了刚才创建的变量,变量注入
在这里插入图片描述

 volumes:
    - name: config
      configMap:
        name: configmap-demp              #数据卷形式挂载,定义读取哪个configmap
        items:
        - key: "redis.properties"         #key
          path: "redis.properties"        #容器目录

数据卷挂载也成功将key写入容器内
验证成功

应用程序配置文件存储:Secret

与configmap类似,区别在于secret主要存储敏感数据,所有的数据要经过base64编码
kubectl crreate secret 支持三种数据类型:
docker-registry:存储镜像仓库认证信息
generic: 从文件目录或者字符串创建。例如存储用户名密码
tls:存储证书,例如https证书

1创建应用pod

1.1生成用户密码的加密字符串

[root@CKA-master ~]# echo  -n 'zhangsan'  |base64
emhhbmdzYW4=
[root@CKA-master ~]# echo  -n 'hello123'  |base64
aGVsbG8xMjM=

1.2 编写pod

以上是关于k8s之 应用程序配置文件存储ConfigMap和Secret的主要内容,如果未能解决你的问题,请参考以下文章

k8s 配置存储之 Configmap & secret

k8s 配置存储之 Configmap & secret

k8s 实践经验配置存储之 Configmap & secret

Kubernetes(k8s)之Configmap配置管理

k8s之安全信息(secret)及配置信息(configmap)管理

32K8S-配置管理之Configmap