本例使用nfs
创建pv
[root@k8s-master data]# vi pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: web
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data
server: 10.10.1.10
字段说明:
========================================================
capacity 指定 PV 的容量为 5G。
accessModes 指定访问模式为 ReadWriteOnce,支持的访问模式有:
ReadWriteOnce – PV 能以 read-write 模式 mount 到单个节点。
ReadOnlyMany – PV 能以 read-only 模式 mount 到多个节点。
ReadWriteMany – PV 能以 read-write 模式 mount 到多个节点。
persistentVolumeReclaimPolicy 指定当 PV 的回收策略为 Recycle,支持的策略有:
Retain – 需要管理员手工回收。
Recycle – 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*。
Delete – 删除 Storage Provider 上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。
storageClassName 指定 PV 的 class 为 nfs。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class 的 PV。
创建PVC
[root@k8s-master data]# vi pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: lnmp
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
[root@k8s-master data]# kubectl apply -f pvc.yaml
persistentvolumeclaim "lnmp" created
[root@k8s-master data]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
lnmp Bound web 5Gi RWO 29s
[root@k8s-master data]#
定义PV
=======================================================
apiVersion: v1
kind: PersistentVolume
metadata:
name: web
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data
server: 10.10.1.10
定义PVC
==========================================================
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: lnmp
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
定义pod
=====================================================
apiVersion: v1
kind: ReplicationController
metadata:
name:lnmp
spec:
replicas: 1
selector:
app: o2o
template:
metadata:
labels:
app: o2o
spec:
containers:
- name: o2o
image: docker.io/winstonpro/lnmp
ports:
- containerPort: 80
volumeMounts:
- mountPath: /home/wwwroot/default
readOnly: false
name: o2o
volumes:
- name: o2o
nfs:
server: 10.10.1.10
path: "/data"