В чем ключевое отличие PVC (Persistent Volume Claim) и full stack?

«В чем ключевое отличие PVC (Persistent Volume Claim) и full stack?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Это понятия из разных слоев абстракции в DevOps-практике.

Persistent Volume Claim (PVC) — это объект инфраструктурного уровня в Kubernetes. Он представляет собой запрос Pod'а на определенное количество хранилища с заданными характеристиками (размер, тип доступа, класс хранилища). PVC абстрагирует Pod от деталей физического или сетего диска (Persistent Volume, PV).

# Пример PVC для StatefulSet базы данных
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-data-pvc
spec:
  accessModes:
    - ReadWriteOnce  # Монтируется на один узел
  storageClassName: fast-ssd  # Использовать быстрый SSD
  resources:
    requests:
      storage: 100Gi

Full stack (полный стек) — это концепция уровня приложения. Она описывает полный набор технологий, необходимых для работы приложения: фронтенд (например, React), бэкенд (например, Go), база данных (PostgreSQL), кэш (Redis), система обмена сообщениями (Kafka) и т.д.

Ключевое отличие:

  • PVC — это инфраструктурный примитив (хранилище), управляемый DevOps-инженером или платформенной командой.
  • Full stack — это архитектурное описание приложения, включающее его логику, данные и интерфейсы. В Kubernetes full stack-приложение разворачивается как набор Deployment'ов, StatefulSet'ов, ConfigMap'ов, Secrets и, в том числе, PVC для stateful-компонентов (как в примере выше для PostgreSQL).