k8s-存储

k8s存储类型

  • configMap
    给我们提供了想容器中注入配置信息的机制,configMap可以保存单个属性,也可以保存这个配置文件或者json二进制大对象。
    一般可以中座配置中心。
  • Secret
    保存一些加密配置
  • volume
    卷,在容器重启时,不会保存容器内的文件,需要存储卷来保存。卷的种类有nfs/cephfs/gusterfs/fc(基于光纤传输)/iscsi(基于网线传输)/hostPath…以及各种公司如亚马逊、微软、阿里的文件格式等
  • PV(持久卷)
    针对上述某一种类型的volume的插件,一般由管理员创建。比如针对nfs创建的PV,里面包含了nfs的远程地址,共享路径、读写方式、容量等参数,便于和POD绑定。(其实POD是通过PVC来查找PV,进而挂载某一种卷资源)

创建configMap

从文件创建(config-map目录下的所有文件)
kubectl create configMap game-config --from-file=/home/config-map
从某一个文件中创建
kubectl create configMap game-config --from-file=/home/config-map/user.properties
使用字面值创建
kubectl create configMap game-config --from-literal=user=xiaohong

pod中使用configMap

k8s-存储_第1张图片

Secret的类型

  • Service Account:用来访问k8s API,由K8S自动创建,ing挂载到pod的/run/secrets/kubenets.io/serviceaccount目录中。也就是说需要和api交互的POD需要此认证。
  • opaque:base64格式的加密,保存密码等
  • kubenets.io/dockerconigjson:用来存储私有docker resigster认证

PV

  • 静态PV
    由集群管理员创建,他们你有可用集群用户使用的实际存储细节,他们存在于k8s API中,可用于消费。
  • 动态PV
    当创建的PC都无法匹配PVC时,集群尝试动态的创建满足PVC条件的PV。

PV的创建

k8s-存储_第2张图片
上面列举的属性,都是PVC中常用的,作为删选PV的条件。
PV的访问模式

  • ReadWriteOnce(RWO):该卷可以被单个节点以读/写模式挂载
  • ReadOnlyMany(ROX):改卷可以被多个节点以只读模式挂载
  • ReadWriteMany(RWX):改卷可以被多个节点以读写模式挂载

PV的回收策略

  • Retain:保留,手动回收
  • Recycle:回收,基于察除(rm -rf /**)
  • delete:删除,关联的储存资产。

PVC的创建

k8s-存储_第3张图片
总结:
PV是一种资源
一个PV和一种具体的vloume绑定,并定义了存储的具体实现细节。
PV可以直接和POD绑定,但是一般不这么做。而是用过PVC
PVC可以认为是一种PV选择器,通过设置卷类型读写模式、资源大小等来选择合适的资源,如果有多个满足,一般选择容量小的PV。
PV和PVC是一对一的关系,一个PV只能绑定一个PVC

你可能感兴趣的:(其他)