k8s存储机制 ConfigMap和Secret

ConfigMap概念

在这里插入图片描述

创建config map 3种方式

1.使用目录创建

将*.properties文件创建在某个目录下面,并且文件内容为key=value的格式
kubectl create configmap configmap名称 --from-file=文件目录
在这里插入图片描述
创建完configmap后
kubectl get cm configmap名称查看创建的configmap
kubectl get cm configmap名称 -o yaml 查看创建configmap的yaml
在这里插入图片描述

2.使用文件名创建

kubectl create configmap configmap名称 --from-file=文件名 和使用目录创建区别,一个是目录一个是文件名
在这里插入图片描述
kubectl describe cm configmap名称
在这里插入图片描述

3.使用字面值创建

kubectl create configmap configmap名称 --from-literal=key=value --from-literal=key=value
在这里插入图片描述

Pod中使用configmap

1.使用configmap中的值

在这里插入图片描述
创建完pod后查看pod中的日志
在这里插入图片描述
在这里插入图片描述

2.在命令行中使用configmap中的值

在这里插入图片描述

3.通过数据卷插件使用configmap

在这里插入图片描述
在这里插入图片描述
进入启动的pod中,
kubectl exec pod名称 -it -- /bin/bash进入pod查看/etc/config目录下可以看到挂载的2个configmap的key

configmap热更新

在这里插入图片描述
在这里插入图片描述
修改configmap kubectl edit conifgmap configmap名称,将configmap日志级别key=log_level改为DEBUG级别
在这里插入图片描述
kubectl exec pod名称 -it -- cat /etc/config/log_level即可查看到pod中的log_level热更新成了debug级别
在这里插入图片描述
在这里插入图片描述

Secret概念

在这里插入图片描述

Secret有3中类型在这里插入图片描述

Service Account

所有需要访问k8s api service的都需要service Account
以kube-proxy为例会访问api service
在这里插入图片描述
进入/run/secrets/kubernetes.io/serviceaccount/ 目录下,有3个文件组成sa以访问api service
在这里插入图片描述

Opaque Secret

将base64位加密的数据账号密码填入yaml中
在这里插入图片描述

secret使用方式

1.将secret挂载到Volume中

在这里插入图片描述
创建pod
kubectl exec pod名称 -it -- /bin/sh进入容器进入挂载secret目录/etc/secrets中即可看到改secret的2个文件,并且secrets中的文件内容时解密后的内容
在这里插入图片描述

2.将secret导入到环境变量中

在这里插入图片描述
创建完deploymnet后进入pod中echo环境变量 即可查看到对应secret的值
在这里插入图片描述

3.当使用私服harbor镜像仓库的时候拉取镜像需要使用到secret

在这里插入图片描述
生成secret
在这里插入图片描述
pod中拉取镜像指定imagePullSecrets创建的secret即可
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Persistence___/article/details/117453044