?Kubernetes中的Volume提供了在容器中挂载外部存储的能力
?Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume
常用的数据卷:
?本地(hostPath,emptyDir)
?网络(NFS,Ceph,GlusterFS)
?公有云(AWS EBS)
?K8S资源(configmap,secret)
1.emptyDir卷:是一个临时存储卷,与Pod生命周期绑定一起,如果Pod删除了卷也会被删除。
应用场景:Pod中容器之间数据共享
进入read 容器查看/data/hello 文件
pod部署node节点上容器的存放目录位置,当pod 删掉后,对应的容器的存放目录也删掉了
2.hostPath卷:挂载Node文件系统(Pod所在节点)上文件或者目录到Pod中的容器。
应用场景:Pod中容器需要访问宿主机文件
将宿主机的/data(对应node节点存在这个目录)目录挂载到容器里面的/data目录下面;将宿主机的/ 目录挂载到容器里面的/opt 目录下面
进入到容器my-pod 查看/data 目录和/opt 目录,
并在容器/opt目录下面创建3.html 宿主机根目录下面也存在
网络存储卷:NFS
NFS卷:提供对NFS挂载支持,可以自动将NFS共享路径挂载到Pod中
NFS:是一个主流的文件共享服务器。
# yum install nfs-utils
# vi /etc/exports
/ifs/kubernetes *(rw,no_root_squash)
# mkdir -p /ifs/kubernetes
# systemctl start nfs
# systemctl enable nfs
注:每个Node上都要安装nfs-utils包