k8s中创建pv和pvc

    技术2022-07-21  104

    1,创建一个pv

    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(失败)——该卷的自动回收失败

    2,创建服务并使用 PVC

    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一样
    Processed: 0.009, SQL: 9