tgoop.com/devopslib/27
Last Update:
🔥 Kubernetes: Как уменьшить время старта подов? 🔥
Одной из распространенных проблем в Kubernetes является длительный запуск подов, особенно если в кластере много сервисов. Давайте разберёмся, как можно ускорить этот процесс.
🚀 1. Используйте лёгкие образы
Выбирайте образы с минимальным количеством зависимостей. Вместо ubuntu:latest лучше взять alpine или distroless.
⚡ 2. Настройте readinessProbe и livenessProbe
Некорректные пробки могут заставить Kubernetes перезапускать поды или считать их неготовыми дольше, чем нужно. Используйте их осознанно.
🎯 3. Предзагружайте образы (Image Pull Policy)
Если ваши поды используют публичные образы, включите ImagePullPolicy: IfNotPresent или Never, чтобы не скачивать образ при каждом старте.
containers:
- name: app
image: my-registry/app:latest
imagePullPolicy: IfNotPresent
💾 4. Используйте
InitContainers для подготовки окружения Если поду требуется что-то до старта (например, миграции БД), лучше использовать
InitContainers, чтобы основное приложение стартовало быстрее. 📦 5. Настройте ресурсы
Ограничения CPU и памяти (
requests и limits) могут повлиять на скорость старта пода. Если ресурсов мало, контейнеру придётся ждать, пока Kubernetes выделит ему место.
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
🏎 6. Используйте
preStopHook для graceful shutdown Чтобы уменьшить задержки при перезапуске подов, обрабатывайте завершение работы приложения через
preStopHook.
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 5"]
🔄 7. Включите
startupProbe для долгозапускающихся сервисов Если приложение стартует долго, лучше использовать
startupProbe, чтобы Kubernetes не убивал его раньше времени.
startupProbe:
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 5
Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/27
