apiVersion: v1 kind: PersistentVolume metadata: name: pv0003 #名称 spec: capacity: storage: 5Gi #卷大小 volumeMode: Filesystem #文件类型 accessModes: #访问策略 - ReadWriteOnce #单独用户读写 persistentVolumeReclaimPolicy: Recycle #回收策略 storageClassName: slow #存储类名称根据自己定义 #划分存储情况 mountOptions: - hard - nfsvers=4.1 #可不指定 nfs: path: /tmp #挂载到哪里 server: 172.17.0.2 #从哪里挂载
ReadWriteOnce——该卷可以被单个节点以读/写模式挂载 ReadOnlyMany——该卷可以被多个节点以只读模式挂载 ReadWriteMany——该卷可以被多个节点以读/写模式挂载 在命令行中,访问模式缩写为: RWO - ReadWriteOnce ROX - ReadOnlyMany RWX - ReadWriteMany 回收策略 Retain(保留)——手动回收 #不使用了也不会别人使用只能手动释放 Recycle(回收)——基本擦除( rm -rf /thevolume/* ) Delete(删除)——关联的存储资产(例如 AWS EBS、GCE PD、Azure Disk 和 OpenStack Cinder 卷) 将被删除 当前,只有 NFS 和 HostPath 支持回收策略。AWS EBS、GCE PD、Azure Disk 和 Cinder 卷支持删除策略 nfs回收策略被废弃了 卷可以处于以下的某种状态: Available(可用)——一块空闲资源还没有被任何声明绑定 Bound(已绑定)——卷已经被声明绑定 Released(已释放)——声明被删除,但是资源还未被集群重新声明 Failed(失败)——该卷的自动回收失败
apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports:
port: 80 name: web clusterIP: None #无头服务 selector: app: nginx #无头服务使用名称apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx serviceName: “nginx” replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: k8s.gcr.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: www 挂载的名称 mountPath: /usr/share/nginx/html #挂载在那个容器内部 volumeClaimTemplates: #匹配一各pv,声明卷请求
metadata: name: www #匹配到容器内的名称 spec: accessModes: [ “ReadWriteOnce” ] #单独用户读写模式必须以pv一致 storageClassName: “nfs” #类型,必须以pv一致 resources: requests: storage: 1Gi #大小apiVersion: v1 kind: PersistentVolumeClaim metadata: name: solr spec: accessModes:
ReadWriteOnce #必须以pv一致 resources: requests: storage: 50Gi storageClassName: nfs #必须和pv一样