
# 挂载存储
在Kubernetes中，通过PersistentVolume(PV)方式挂载存储，典型的步骤如下：
1. 创建PV，为集群提供存储服务。
   ```
   apiVersion: v1
   kind: PersistentVolume
   metadata:
       name: mypv1
       annotations:
           # 访问控制: 使用 group ID(GID) 配置的存储仅允许 Pod 使用相同的 GID 进行写入。
           pv.beta.kubernetes.io/gid: "1234"
   spec:
       capacity:
           storage: 1Gi  # 指定PV容量
       accessModes:
           # 访问模式：
           # ReadWriteOnce 以读写模式 mount 到单个节点；
           # ReadOnlyMany 以只读模式 mount 到多个节点；
           # ReadWriteMany 以读写模式 mount 到多个节点。
           - ReadWriteOnce
       # 回收策略：
       # Retain管理员手工回收。PV的STATUS保持Released无法被其他PVC申请，需要删除并重新创建PV；
       # Recycle清除PV中的数据，相当于rm -rf /thevolume/*。自动启动一个Pod删除PV中的数据，删除后PV的STATUS恢复为Available；
       # Delete删除存储资源。
       persistentVolumeReclaimPolicy: Recycle
       storageClassName: nfs  # PV分类
       nfs:
           path: /nfsdata/pv1
           server: 192.168.56.105
   ```
   
2. 声明PersistentVolumeClaim(PVC)，指定应用实例需要的存储资源。
   ```
   apiVersion: v1
   kind: PersistentVolumeClaim
   metadata:
       name: mypvc1
   spec:
       accessModes:
           - ReadWriteOnce  # 指定访问模式
       resources:
           requests:
               storage: 1Gi  # 指定容量
       storageClassName: nfs  # 指定PV分类
   ```
   
3. 在Pod中挂载PVC。
   ```
   apiVersion: v1
   kind: Pod
   metadata:
     name: task-pv-pod
   spec:
     volumes:
       - name: task-pv-storage
         persistentVolumeClaim:
           claimName: mypvc1
     containers:
       - name: task-pv-container
         image: nginx
         ports:
           - containerPort: 80
             name: "http-server"
         volumeMounts:
           - mountPath: "/usr/share/nginx/html"
             name: task-pv-storage
   ```
   
 
