ℹ️ У тебя есть под, который выполняет тяжёлые операции (например, сборку или загрузку большого количества данных), и при каждом перезапуске он теряет прогресс. Это увеличивает время развертывания и создаёт нагрузку на систему.
✔️ Используй временное хранилище с типом emptyDir для кеширования промежуточных данных между перезапусками контейнеров внутри одного пода.
ℹ️ emptyDir — это временная директория, которая создаётся на ноде при запуске пода и сохраняется на протяжении всего времени жизни пода. Пока под не перезапущен (удалён и пересоздан), данные в emptyDir остаются доступными для всех контейнеров в поде.
📑 Пример манифеста:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: app-container
image: my-app:latest
volumeMounts:
- mountPath: /cache
name: cache-volume
- name: sidecar-container
image: helper-image:latest
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
❔ Почему это полезно?
1. Снижение времени перезапуска: данные, которые тяжело пересоздавать, остаются доступными между перезапусками контейнеров.
2. Кеширование между контейнерами: несколько контейнеров в одном поде могут совместно использовать одну директорию для промежуточных данных.
3. Экономия ресурсов: уменьшается количество операций ввода-вывода и сетевой нагрузки при скачивании данных или сборке артефактов.
🔥 Использование emptyDir с типом Memory
Для ещё большего ускорения операций можно использовать emptyDir с типом memory, что создаст кеш в оперативной памяти:
volumes:
- name: cache-volume
emptyDir:
medium: "Memory"
ℹ️ Все операции с кешем будут происходить в памяти, что резко увеличит скорость чтения и записи.
tags: #полезно #k8s
🧭 @recura_tech


