k8s数据存储持久化
作用:应用之间 pod之间 容器之间 共享数据
容器应用的数据持久化
volume常见的类型
常规的存储 EmptyDir HostPath
高级存储 PV PVC
配置存储 configMap Secret
其他类型的存储 nfs cifs ceph
EmptyDir 空目录存储
特点:能实现pod中容器之间的数据共享 但没有数据持久化的功能
随pod删除而删除
HostPath 主机路径存储
特点:实现容器之间的数据共享和外部访问应用数据 具有数据持久化功能
属于节点主机的目录 不随pod删除而删除
类型:
Directory 指定的主机目录必须存在
DirectoryOrCreate 目录不存在会自动创建空目录
File 指定文件必须存在
FileOrCreate 文件不存在会自动创建空文件
configmap和secret
共同特点:实现向pod应用注入配置数据或者验证信息
区别:configmap 明文数据的注入
Secret 密文数据注入
创建Configmap资源的两种方式
命名格式
Kubectl create configmap NAME --from-literall=key1=value1 --from-literal=key2=value2
文件格式
Data:
info:
key1:value1
key2:value2
Secret 资源
用来保存敏感信息 比如:密码 密钥 整数 令牌
将数据加密后将密文注入到pod应用中
pod中使用secret三种方式
作为挂载到一个或多个容器上的卷中文件
作为容器的环境变量
由kubelet在为pod拉取镜像时使用
secret的类型
Dockerconfigjson 用来存储私有的docker registry(容器仓库)的认证信息
Service Account 与k8s api-server交互的pod会自动拥有此类账号
Opaque 通过base64来加密明文数据
主要用于用户自定义的加密数据注入
PV persistent volume 存储卷
是集群中由专门人员配置的一段网络存储
pv没有命名空间隔离概念 不同的pv代表不同的存储类型资源(包括大小 种类)
PVC persistent volume claim 存储卷申请
是用户对特定存储的一种声明或者申请 特定的存储指的是pv
pvc可以指定特定的存储空间和访问模式 由k8s负责找到合适的pv与之对应
pv和pvc的关系:pv是集群中的资源 pvc对这种资源的申请
两者的声明周期
provisioning配置--->Binding绑定--->Using使用--->Releasing释放--->Recycling回收
pv的访问模式:用户对资源的访问权限
ReadWriteOnce(RWO):读写权限,只能被单个节点挂载
ReadOnlyMany(ROX): 只读权限,可以被多个节点挂载
ReadWriteMany(RWX):读写权限,可以被多个节点挂载
回收策略:
Retain保留 当pv对象被删除后 与之相关的数据文件保留
Resyscle回收 相当于rm -rf ./* 与之相关的数据被删除 可用于新的pvc申领
pvc申领
Delete 当pv对象被删除 与之相关的数据和卷被删除
pv状态
Available可用 一块空闲的资源 没有被任何pvc绑定
Bound 已绑定 卷已被pvc申领
Released 已释放 申明被删除 但资源未被集群重新声明
Failed失败 改卷的自动回收失败
更多推荐
所有评论(0)