Generic ephemeral volumes

Generic Ephemeral Volumes в Kubernetes — это функция, которая позволяет создавать эфемерные (временные) тома на уровне пода с использованием существующих StorageClasses и CSI-драйверов, без необходимости предварительного определения PersistentVolumeClaims (PVC).

Они сочетают гибкость динамического выделения с простотой объявления томов на уровне пода.

  • Это временные тома, которые автоматически:

    • создаются при запуске Pod

    • удаляются при завершении Pod

  • Используют те же базовые механизмы, что и PersistentVolumeClaim

  • Требуют CSI (Container Storage Interface) драйвер с поддержкой динамического выделения

Содержание

Пример ephemeral volumes

Этот пример автоматически создаёт временный PVC для Pod с использованием указанного StorageClass.

apiVersion: v1
kind: Pod
metadata:
  name: ephemeral-demo
spec:
  containers:
    - name: app
      image: busybox
      command: ["sh", "-c", "echo hello > /data/hello.txt && sleep 3600"]
      volumeMounts:
        - mountPath: /data
          name: ephemeral-volume
  volumes:
    - name: ephemeral-volume
      ephemeral:
        volumeClaimTemplate:
          metadata:
            labels:
              type: temporary
          spec:
            accessModes: [ "ReadWriteOnce" ]
            resources:
              requests:
                storage: 1Gi
            storageClassName: standard
  1. Pod создаст PVC, используя этот шаблон.

Основные характеристики

ХарактеристикаОписание
ЭфемерныйТом удаляется при удалении Pod
Динамическое выделениеПоддерживается любым CSI-драйвером с динамическим выделением
Без отдельного PVCVolumeClaim встроен непосредственно в спецификацию Pod
Работает через CSIСовместим с любым CSI-драйвером (EBS, RBD, Longhorn и др.)

Когда использовать Generic Ephemeral Volumes

  • Когда требуется временное хранилище с такими возможностями, как:

    • Изменяемый размер томов

    • Снимки (snapshots)

    • Шифрование

    • Хранилище, не привязанное к локальному узлу (например, облачное блочное хранилище)

  • Идеально подходит для:

    • Кэширования промежуточных данных

    • Временных рабочих директорий

    • Конвейеров, AI/ML рабочих процессов

Чем они отличаются от emptyDir?

ХарактеристикаemptyDirGeneric Ephemeral Volume
Бэкенд хранилищаЛокальный диск или память узлаЛюбой бэкенд с поддержкой CSI
Возможности храненияБазовыеПоддержка снимков, шифрования и др.
Сценарий использованияПростое временное хранилищеРасширенные требования к эфемерному хранилищу
Возможность пересозданияНет (привязан к узлу)Да (если CSI-том можно подключить)