[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-kubernetes-chto-takoe-persistentvolume-i-persistentvolumeclaim":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},1320,"chto-takoe-persistentvolume-i-persistentvolumeclaim",26,"kubernetes","Kubernetes","☸️","Что такое PersistentVolume и PersistentVolumeClaim?","PersistentVolume (PV) — ресурс хранилища в кластере, который существует независимо от Pod'ов. PersistentVolumeClaim (PVC) — запрос на хранилище от пользователя. Вместе они разделяют ответственность: администратор управляет хранилищем (PV), разработчик запрашивает нужный объём (PVC).\n\n> Аналогия из жизни: PV — это складские помещения, которые владелец здания подготовил к сдаче. PVC — заявка арендатора: «мне нужно 5 кв. метров с доступом только для одного». Kubernetes-диспетчер находит подходящее помещение и закрепляет его за арендатором.\n\n### PersistentVolume (PV)\n\n```yaml\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: postgres-pv\nspec:\n  capacity:\n    storage: 10Gi\n  accessModes:\n    - ReadWriteOnce\n  persistentVolumeReclaimPolicy: Retain\n  storageClassName: standard\n  hostPath:\n    path: \u002Fdata\u002Fpostgres\n```\n\n### PersistentVolumeClaim (PVC)\n\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: postgres-pvc\nspec:\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n  storageClassName: standard\n```\n\n\u003Cdetails>\n\u003Csummary>Пример использования PVC в Deployment\u003C\u002Fsummary>\n\n```yaml\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: postgres\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: postgres\n  template:\n    metadata:\n      labels:\n        app: postgres\n    spec:\n      containers:\n        - name: postgres\n          image: postgres:15\n          ports:\n            - containerPort: 5432\n          volumeMounts:\n            - name: postgres-storage\n              mountPath: \u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n          env:\n            - name: POSTGRES_PASSWORD\n              valueFrom:\n                secretKeyRef:\n                  name: postgres-secret\n                  key: password\n      volumes:\n        - name: postgres-storage\n          persistentVolumeClaim:\n            claimName: postgres-pvc\n```\n\n\u003C\u002Fdetails>\n\n### Access Modes\n\n| Режим | Описание |\n|---|---|\n| ReadWriteOnce (RWO) | Чтение и запись одной нодой |\n| ReadOnlyMany (ROX) | Только чтение множеством нод |\n| ReadWriteMany (RWX) | Чтение и запись множеством нод |\n\n### Reclaim Policy (политика освобождения)\n\n| Политика | Поведение |\n|---|---|\n| Retain | PV сохраняется после удаления PVC (данные остаются, нужна ручная очистка) |\n| Delete | PV и данные удаляются вместе с PVC |\n| Recycle (устарел) | Очистка данных и повторное использование |\n\n### StorageClass\n\nStorageClass позволяет динамически создавать PV по запросу PVC. Администратору не нужно создавать PV вручную.\n\n```yaml\napiVersion: storage.k8s.io\u002Fv1\nkind: StorageClass\nmetadata:\n  name: fast-ssd\nprovisioner: kubernetes.io\u002Faws-ebs\nparameters:\n  type: gp3\n  fsType: ext4\nreclaimPolicy: Delete\nallowVolumeExpansion: true\n```\n\n> **На собеседовании:** нужно объяснить связь PV -> PVC -> Pod и знать Access Modes. Частая ошибка — не упомянуть StorageClass и динамическое создание PV, а также путать Retain и Delete Reclaim Policy.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Что такое PersistentVolume и PersistentVolumeClaim? — Gymterview","PersistentVolume (PV) — ресурс хранилища в кластере, который существует независимо от Pod'ов. PersistentVolumeClaim (PVC) — запрос на хранилище от пользователя.","PersistentVolume (PV) — ресурс хранилища в кластере, который существует независимо от Pod'ов. PersistentVolumeClaim (PVC",[7,13],"PersistentVolume (PV) — ресурс хранилища в кластере, который существует независимо от Pod'ов. PersistentVolumeClaim (PVC) — запрос на хранилище от пользователя. Вместе они разделяют ответственность: администратор управляет хранилищем (PV), разработчик запрашивает нужный объём (PVC).",true]