Volume

由于pod销毁后,导致数据也会销毁,就得用到Volume

参考文档:https://kubernetes.io/docs/concepts/storage/volumes/

emptyDir

创建一个空卷,挂载到Pod中的容器。Pod删除该卷也会被删除。
应用场景:Pod中容器之间数据共享

《四》Volume & PersistentVolume_第1张图片

通过-c 指定哪个容器
kubectl logs -c read my-pod

hostPath

共享宿主机目录,pod分配在哪个node上,就是共享的node上的目录或者文件

由于共享的是tmp,这是目录,所以用Directory,若是共享1.txt,这个是文件,就是File
《四》Volume & PersistentVolume_第2张图片

查看分配到了哪个node上:
《四》Volume & PersistentVolume_第3张图片

在192.168.1.24的/tmp创建目录或者文件,因为是共享的tmp,在进入容器里验证,这里的共享可以删除修改

总结:以上都是本地的数据卷,若是pod删除了,k8s把你再拉起一个pod,在另外的node上,那就看不到了,需要使用网络的数据库nfs

网络数据卷-nfs

node节点都要安装,因为你创建pod时k8s会帮你调到任意的node
服务端:192.168.1.25 安装 yum install nfs-utils -y
[root@docker ~]# cat /etc/exports
/data/nfs *(rw,no_root_squash)

启动:systemctl start
客户端:192,168.1.23 安装 yum install nfs-utils -y
客户端:192,168.1.24 安装 yum install nfs-utils -y

《四》Volume & PersistentVolume_第4张图片

《四》Volume & PersistentVolume_第5张图片

验证:
http://192.168.1.23:34293/
http://192.168.1.24:34293/

PersistentVolumes(持久卷) 和PersistentVolumeClaim(持久卷申请)

Pod 消费 Node 的资源,PVCs 消费 PV 的资源

先创建需求pvc:

《四》Volume & PersistentVolume_第6张图片

再创建好的资源pv:
必须要有/data/nfs/wwwroot 这个目录
《四》Volume & PersistentVolume_第7张图片

1、kubectl apply -f pvc.yaml
kubectl apply -f my-pv.yaml
2、查看绑定(如果pv有使用过,则需要重建):
《四》Volume & PersistentVolume

pvc必须根据容量和访问模式才能匹配pv

3、验证访问
http://nodeip:serviceport

总结:
Access Modes 访问模式:
ReadWriteOnce – the volume can be mounted as read-write by a single node (单node的读写)
ReadOnlyMany – the volume can be mounted read-only by many nodes (多node的只读)
ReadWriteMany – the volume can be mounted as read-write by many nodes (多node的读写)
Notice:单个PV挂载的时候只支持一种访问模式

pv:运维/存储人员提供
pvc:需求连接
由于上面是手动创建pv,pvc,小规模的话还好,大规模的话就很麻烦,这个时候需要动态供给

PersistentVolume 动态供给

插件文档:https://kubernetes.io/docs/concepts/storage/persistent-volumes/
参考文档:https://github.com/kubernetes-incubator/external-storage

因动态供给有些不支持,需要手动安装插件,比如nfs
《四》Volume & PersistentVolume_第8张图片

1、kubectl apply -f storageclass-nfs.yaml
2、kubectl apply -f deployment-nfs.yaml
3、kubectl apply -f rbac.yaml
4、kubectl apply -f nginx-demo.yaml

验证:
《四》Volume & PersistentVolume_第9张图片

自动帮你创建nfs下面的目录:
《四》Volume & PersistentVolume