一:体系结构图
二:说明
1.单节点Volume是最简单的普通Volume,它和Docker的存储卷类似,使用的是Pod所在K8S节点的本地目录。具体有两种,一种是 emptyDir,是一个匿名的空目录,由Kubernetes在创建Pod时创建,删除Pod时删除。另外一种是 hostPath,与emptyDir的区别是,它在Pod之外独立存在,由用户指定路径名。这类和节点绑定的存储卷在Pod迁移到其它节点后数据就会丢失,所以只能用于存储临时数据或用于在同一个Pod里的容器之间共享数据。
2.普通Volume和使用它的Pod之间是一种静态绑定关系,在定义Pod的文件里,同时定义了它使用的Volume。Volume 是Pod的附属品,我们无法单独创建一个Volume,因为它不是一个独立的K8S资源对象。
3.Persistent Volume 简称PV是一个K8S资源对象,我们可以单独创建一个PV。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定。Pod定义里指定的是PVC,然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。
4.PV 定义举例
-
apiVersion: v1
-
kind: PersistentVolume
-
metadata:
-
name: pv0003
-
spec:
-
capacity:
-
storage: 5Gi
-
accessModes:
-
- ReadWriteOnce
-
persistentVolumeReclaimPolicy: Recycle
-
storageClassName: slow
-
nfs:
-
path: /tmp
-
server: 172.17.0.2
5.PVC定义举例
-
kind: PersistentVolumeClaim
-
apiVersion: v1
-
metadata:
-
name: myclaim
-
spec:
-
accessModes:
-
- ReadWriteOnce
-
resources:
-
requests:
-
storage: 8Gi
-
storageClassName: slow
-
selector:
-
matchLabels:
-
release: "stable"
-
matchExpressions:
-
- {key: environment, operator: In, values: [dev]}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-2153408/
,如需转载,请注明出处,否则将追究法律责任。