Telegram Group & Telegram Channel
🔧 DevOps Pro Tips: Оптимизация контейнеров как у SRE Google

Контейнер — это не просто Dockerfile. Это микросистема, и если её не настраивать — она будет жечь CPU, RAM и SSD без пользы. Вот 🔥 продвинутые советы по настройке контейнеров:

Ограничь права контейнера

docker run --read-only --cap-drop=ALL --security-opt no-new-privileges ...

▪️ --read-only — защищает файловую систему
▪️ --cap-drop=ALL — удаляет лишние привилегии
▪️ no-new-privileges — запрещает повышение прав в процессе

Установи лимиты CPU и памяти

docker run --memory="512m" --cpus="1.5" ...

▪️ Не давай контейнеру жрать весь хост — особенно на multi-tenant нодах
▪️ Используй cpu-shares, cpuset, ulimits для тонкой настройки

Чисти от мусора
- Используй multi-stage builds — минимизируй размер образа
- Оставляй только необходимые бинарники и конфиги
- Пример:

FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app

FROM alpine:3.19
COPY --from=builder /app/app /bin/app
ENTRYPOINT ["/bin/app"]


Используй distroless или Alpine
- Образы типа gcr.io/distroless/static — без шелла, package manager и мусора
- alpine — легче, но следи за совместимостью с glibc

Пропиши healthcheck

HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:8080/health || exit 1

▪️ Kubernetes будет перезапускать только при реальных сбоях

Подключи observability
- Встраивай Prometheus exporter
- Логи — в stdout/stderr (для kubectl logs и EFK/PLG стека)
- Используй otel, если нужен tracing

Проверь, чем занят контейнер

docker top <container>
docker inspect --format '{{ .HostConfig }}' <container>

▪️ Вовремя заметишь, если процесс форкает что-то лишнее или идёт через /dev

💡 Эти практики критичны, если:
- Вы деплоите в прод с autoscaling
- Контейнеры крутятся в k8s или Fargate
- Вам важно сократить издержки на ресурсы и повысить безопасность

Минимальный, безопасный, ограниченный и наблюдаемый контейнер — залог стабильности продакшна.

@devopsitsec



tg-me.com/DevOPSitsec/1501
Create:
Last Update:

🔧 DevOps Pro Tips: Оптимизация контейнеров как у SRE Google

Контейнер — это не просто Dockerfile. Это микросистема, и если её не настраивать — она будет жечь CPU, RAM и SSD без пользы. Вот 🔥 продвинутые советы по настройке контейнеров:

Ограничь права контейнера


docker run --read-only --cap-drop=ALL --security-opt no-new-privileges ...

▪️ --read-only — защищает файловую систему
▪️ --cap-drop=ALL — удаляет лишние привилегии
▪️ no-new-privileges — запрещает повышение прав в процессе

Установи лимиты CPU и памяти

docker run --memory="512m" --cpus="1.5" ...

▪️ Не давай контейнеру жрать весь хост — особенно на multi-tenant нодах
▪️ Используй cpu-shares, cpuset, ulimits для тонкой настройки

Чисти от мусора
- Используй multi-stage builds — минимизируй размер образа
- Оставляй только необходимые бинарники и конфиги
- Пример:

FROM golang:1.22 as builder
WORKDIR /app
COPY . .
RUN go build -o app

FROM alpine:3.19
COPY --from=builder /app/app /bin/app
ENTRYPOINT ["/bin/app"]


Используй distroless или Alpine
- Образы типа gcr.io/distroless/static — без шелла, package manager и мусора
- alpine — легче, но следи за совместимостью с glibc

Пропиши healthcheck

HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:8080/health || exit 1

▪️ Kubernetes будет перезапускать только при реальных сбоях

Подключи observability
- Встраивай Prometheus exporter
- Логи — в stdout/stderr (для kubectl logs и EFK/PLG стека)
- Используй otel, если нужен tracing

Проверь, чем занят контейнер

docker top <container>
docker inspect --format '{{ .HostConfig }}' <container>

▪️ Вовремя заметишь, если процесс форкает что-то лишнее или идёт через /dev

💡 Эти практики критичны, если:
- Вы деплоите в прод с autoscaling
- Контейнеры крутятся в k8s или Fargate
- Вам важно сократить издержки на ресурсы и повысить безопасность

Минимальный, безопасный, ограниченный и наблюдаемый контейнер — залог стабильности продакшна.

@devopsitsec

BY DevOps


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/DevOPSitsec/1501

View MORE
Open in Telegram


DevOps Telegram | DID YOU KNOW?

Date: |

Telegram today rolling out an update which brings with it several new features.The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations.

DevOps from in


Telegram DevOps
FROM USA