nfs
NFS是Network File System的缩写,即网络文件系统。其功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
因此nfs卷可以被用于多节点环境下的集群中,因为任何一个Node上向NFS暴露出的目录中写入数据,其他Node中相同目录中的数据都会被更新。
可以用下图来表示nfs卷被使用时的情况:

创建nfs卷
因为nfs卷需要用到NFS服务器,因此NFS服务器需要安装NFS相配置以启用功能,这里就不作赘述。
nfs卷的创建可以分为两步:
定义卷:在Pod的
spec.volumes
中定义卷,并且在spec.volumes.nfs
中定义该卷相关的配置,主要是path
和server
,即NFS服务器暴露的路径和NFS服务器的IP地址;挂载卷:在Pod的
spec.containers.volumeMounts
中指定挂载点和挂载的卷名;
下面举一个例子,创建一个名为mongodb
的Pod,该Pod将一个名为mongodb-data
的nfs卷挂载至容器的/usr/share/nginx/html
目录下,并且该卷是由IP地址为1.2.3.4
的NFS服务器暴露的/etc/export
路径,并且是只读的:
apiVersion: v1
kind: Pod
metadata:
name: mongodb
spec:
volumes: # 定义卷
- name: mongodb-data # (必须)卷名
nfs: # 定义一个hostPath卷
path: /etc/export # (必须)NFS服务器暴露的路径
server: 1.2.3.4 # (必须)NFS服务器的IP地址或域名
readOnly: true # 该卷为只读
containers:
- image: mongo
name: mongodb
volumeMounts: # 挂载点
- name: mongodb-data # (必须)需要挂载的卷名
mountPath: /usr/share/nginx/html # (必须)挂载至容器的文件系统中的路径
ports:
- containerPort: 27017
protocol: TCP
Last updated
Was this helpful?