一、k8s存储

1.1 为什么需要存储

k8s为什么需要存储卷
数据卷概述
所有卷类型
卷类型

大类卷类型英文解释场景官网
本地临时卷emptyDirpod在数据在,临时数据共享;一个容器输出数据,一个容器读取数据存储 卷 emptyDir storage/volumes/#emptyDir
本地临时卷hostPathhostPath 卷,挂载node文件系统上的文件或者目录到Pod中的容器容器要访问宿主机上的文件存储 卷 hostpath storage/volumes/#hostpath
网络网络卷NFSNFS网络卷10台nginx共享代理网站或者图片,使用nfs 一台修改,就全部都修改了存储 卷 hostpath storage/volumes/#nfs
网络网络卷pv、pvc对网络卷进行抽象;PVC持久卷申领(PersistentVolumeClaim,PVC)表达的是用户对存储的请求。PV持久卷(PersistentVolume,PV)是集群中的一块存储。公司希望开发不能知道网络卷的具体ip和信息,这里k8s进行了抽象持久 卷 persistent-volumes

参考: 官网卷Volume

1.2 临时卷 temp

临时卷

1.3 hostPath卷

hostPath卷
kubectl exex -it my-pods -- sh 进入busybox容器。容器内创建一个文件 或者 宿主机上面创建文件,看两边是否都同时能看到,进行验证。如果把path变成/,那容器里面可以把宿主机所有数据都获取到。

1.4 nfs网络卷

网络卷NFS

mount -t nfs 192.168.31.63:/ifs/kubernetes /mnt #指定nfs协议,挂载远程目录到本地/mnt目录
#卸载nfs挂载目录 /mnt
unmont  /mnt/

nfs卷

二、持久卷 pvc、pv

pv vs pvc关系,1:1,类似中国一夫一妻制

2.1 pvc概念

pvc、pv模式,本质上和nfs没有差别,只是k8s抽象了一下。
让磁盘提供这和使用这进行人为分开,磁盘使用这,不用了解pv的内部细节。
pv也支持云磁盘如阿里云oss

持久卷

简写中文全程维护人员
pv提供存储的PersistentVolume相当于管理磁盘的运维人员
pvc申请的存储的PersistentVolumeClaim相当开发要用磁盘

2.2 pvc、pv使用流程

pv vs pvc

2.3 pv声明周期

pv有静态pv,每一块需要自己创建;
pvc、pv匹配条件:1:存储空间 2:访问模式   匹配最近接近的PV容量 >=,匹配不了就pending.
因此产生了动态pv,只要在声明pvc时候,添加storageClassName这个存储类,会自动创建一个pv.

pv的生命周期
静态供给 vs 动态供给

中文命令
获取pv,查看pv是否和pvc进行绑定kubectl get pv
获取pvckubectl get pvc
删除yaml 会自动删除 里面的多个资源kubectl delete -f xxxx.yaml
获取k8s存储类kubectl get storageclasses、 kubectl get sc

persistent-volumes

2.4 pv动态供给 (动态卷供应) dynamic-provisioning

pvc每次要匹配一个pv,当需要的存储特别多的伤害,创建pv就是一个体力活了;
因此k8s产生了一个动态供给;
只要定义一个存储类,会自动 创建pv.

参考:storage-classe 内置制备器( 内置就不用自己按照存储类pod)
参考:storage/dynamic-provisioning/ 动态卷供应
动态供给
动态供给原理
部署NFS实现自动创建PV插件

二、StatefulSet 控制器

主从、主备、分布式,可以可以使用;大厂才会这么搞。
自己可以用一个单实例、或者测试环境的来测试。

StatefulSet控制器
参加:k8s之StatefulSet详解

StatefulSet控制器
StatefulSet和Deployment区别

三、Configmap

当数据不希望注入到容器里面,而是想在容器创建的时候动态获取,就可以使用configmap.
configmap:就是把配置信息在使用的时候,从k8s里面注入进去。
secret:只是对一些敏感信息进行加密,如:账号密码、https证书等。

应用程序configmap文件配置

应用程序配置存储Secret
应用程序存储

名称命令
获取configmap存储kubectl get configmaps
获取configmap加密存储形式secretskubectl get secrets

课后作业

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐