k8s 存储机制
configmap 存储配置文件
secret 秘钥,加密方案
volume 给pod 提供 共享存储卷
persistent volume 持久卷
ConfigMap
类似于配置文件的注册中心
服务运行前先去 注册中心索要 自己的配置信息(根据ip、域名等等去匹配)
创建方式有三种
1. 使用目录创建
键值对,key 是 文件名称,value 是文件的内容
-
使用文件创建
-
使用字面值创建
pod中使用ConfigMap来替代环境变量
资源清单的方案书写格式
将map导入到pod中
ConfigMap设置命令行参数
和上一个类似,就是添加了一些导入命令
通过数据卷插件的方式使用ConfigMap
ConfigMap支持热更新
secret 保存方式
保存一些需要加密的数据
opaque解密方式比较简单
Service Account
目录先有 ca.crt namespace token
ca.crt 是证书
namespace 是当前处于哪个命名空间下
token 是一些秘钥信息
k8s 默认会在每一个默认空间下创建一个 sa , default token
Opaque Secret
数量类型是map类型,要求是键值对的编码格式
base64位加密方式加密效果较差
kubernetes.io / dockerconfigjson
将 kubectl 创建 docker的仓库(私有 )注册认证信息保存
kubectl 创建一个 secret,类型是 docker-registry , 名字叫 myregistrykey 。docker-server 的地址,docker-username docker server的名字,docker server的密码,docker server 的邮箱
Secret 使用方式
将Secret 挂载到 Volume 中
该挂载目录下有两个目录,一个 username,一个password,里面存的是明文的
说明在保存的时候是密文存入的,但保存的时明文保存的
将Secret 导入到环境变量中去
Volume
保存容器内的数据,防止重启造成的丢失
容器间共享文件
卷的类型
emptyDir
pod 运行时就会创建一个空的目录卷,会与pause 进行绑定
实现方案
hostPath
访问容器内部资源
cAdvisor 监控资源
确保所以节点的mfs共享目录内容相同
实现方案
PV(persistent volume)/ PVC
PV 独立于pod的生命周期之外
PVC消耗PV资源
静态由管理员创建
PVC和PV的绑定是一对一的
PV的存储要大于等于PVC
pod删除,PVC不会丢失
PV以插件类型的实现的
实现方案
PV的访问模式
并不是所有的类型都是支持多读写模式
PV回收策略
新版k8s , 回收策略目前已经被废弃了