更新时间:2022-04-20 GMT+08:00
挂载存储
在Kubernetes中,通过PersistentVolume(PV)方式挂载存储,典型的步骤如下:
- 创建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
- 声明PersistentVolumeClaim(PVC),指定应用实例需要的存储资源。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mypvc1 spec: accessModes: - ReadWriteOnce # 指定访问模式 resources: requests: storage: 1Gi # 指定容量 storageClassName: nfs # 指定PV分类
- 在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
父主题: Operator代码示例