Команды копируют манифесты из dev в prod, чтобы было проще. Но в деве 2 реплики и 128Mi памяти хватает. В продц нужно 20 реплик и 2Gi памяти.
Что происходит
В dev запустили 10 реплик для теста — кластер упал. В prod оставили 2 реплики — сервис не держит нагрузку. Или забыли поменять ConfigMap с URL базы — prod подключился к dev-базе.
Как исправить
Используйте kustomize. Создайте base с общими настройками, а окружения описывайте в overlays:
base/
deployment.yaml
service.yaml
overlays/
dev/
kustomization.yaml
prod/
kustomization.yaml
В overlay переопределяете replicas, resources, ConfigMap, Secrets. В dev можете вообще не использовать Secrets — подойдёт mock-конфиг. В prod — настоящий Secret из Sealed Secrets или внешнего Vault.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Devuan выпустил шестую версию своего дистрибутива. Это операционная система для тех, кто предпочитает OpenRC или runit вместо systemd. Новая версия основана на Debian 13 Trixie и получит поддержку до конца жизненного цикла Debian — в течение нескольких лет.
Главное изменение — теперь обязателен merged-/usr, то есть директория /usr сливается с корневой директорией. Если обновляетесь со старых версий, нужно сначала установить пакет usrmerge в Daedalus, а потом уже переходить на Excalibur.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Знакомая ситуация: код запускается на ноутбуке, а в CI он сразу же ломается. Причина почти всегда в окружении — где-то не хватает переменной, токен истёк, или указан неправильный регион.
Перед тем как запустить джоб, убедитесь, что все критичные переменные на месте и имеют смысл:
# Проверяем, что все нужные переменные заданы
required=(DB_URL OAUTH_CLIENT_ID OAUTH_SECRET REGION)
for v in "${required[@]}"; do
[ -n "${!v}" ] || { echo "::error::$v missing"; exit 78; }
done
Добавьте это в начало вашего скрипта CI. Код проходит по списку переменных и падает, если какая-то не установлена.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Open Source в действии: Runtime Radar — первый в России инструмент для защиты контейнерных сред на базе eBPF и Tetragon.
📆 11 ноября, 14:00 (МСК), онлайн, бесплатно
Контейнеры ускорили DevOps, но открыли новые векторы атак.
Узнай, как Runtime Radar помогает выявлять угрозы в реальном времени, расследовать инциденты и защищать Kubernetes без сложной настройки.
Что вас ждёт:
✅ демонстрация Runtime Radar в действии;
✅ интеграция в SOC и мониторинг кластеров;
✅ инсайды от команды PT о развитии проекта.
Open Source — код и документация доступны на GitHub.
Присоединяйтесь и сделайте свою контейнерную инфраструктуру прозрачной и защищенной.
👉🏻 Регистрация на вебинар
📆 11 ноября, 14:00 (МСК), онлайн, бесплатно
Контейнеры ускорили DevOps, но открыли новые векторы атак.
Узнай, как Runtime Radar помогает выявлять угрозы в реальном времени, расследовать инциденты и защищать Kubernetes без сложной настройки.
Что вас ждёт:
✅ демонстрация Runtime Radar в действии;
✅ интеграция в SOC и мониторинг кластеров;
✅ инсайды от команды PT о развитии проекта.
Open Source — код и документация доступны на GitHub.
Присоединяйтесь и сделайте свою контейнерную инфраструктуру прозрачной и защищенной.
👉🏻 Регистрация на вебинар
❤2
Kubernetes не удаляет ресурсы автоматически. Создали тестовый Deployment, Service, LoadBalancer — забыли удалить. Через месяц в кластере 50 неиспользуемых объектов.
Что происходит
Service с типом LoadBalancer создаёт внешний балансировщик в облаке. Вы платите за него каждый день. PersistentVolumeClaim держит диск, даже если под давно удалён. ConfigMap и Secret захламляют namespace.
Как исправить
Добавьте лейблы всем ресурсам:
metadata:
labels:
owner: team-backend
purpose: experiment
expires: 2025-11-15
Теперь можно найти всё, что создала команда:
kubectl get all -l owner=team-backend. Или всё, что просрочено.Настройте сборку мусора. Kubernetes удалит зависимые объекты, если удалить владельца.
Используйте Kyverno для автоматического удаления ресурсов.
Делайте аудит раз в неделю:
kubectl get all --all-namespaces. Ищите незнакомые имена, странные namespace. Удаляйте то, что не нужно.#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
SRE/DevOPS инженер до 500 000 ₽
Senior DevOps-инженер от 4700 до 5700 $
DevOps-инженер до 400 000 ₽
AppSec инженер на удалёнку
Бустер — Офис у вас дома.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 LXQt 2.3.0: больше поддержки Wayland и удобства в работе с файлами
Вышла новая версия LXQt — лёгкого десктопного окружения на основе Qt. Основной фокус релиза на улучшение работы с Wayland, протоколом, который постепенно заменяет X11.
В файловом менеджере PCManFM-Qt появилась функция Safely Remove для безопасного извлечения съёмных носителей, и теперь можно отключить подсказки при наведении на файлы на рабочем столе.
В целом это релиз для тех, кто работает на Wayland или просто хочет больше удобства в повседневной работе с ОС.
➡️ Release notes
🐸 Библиотека devops'a
#пульс_индустрии
Вышла новая версия LXQt — лёгкого десктопного окружения на основе Qt. Основной фокус релиза на улучшение работы с Wayland, протоколом, который постепенно заменяет X11.
В файловом менеджере PCManFM-Qt появилась функция Safely Remove для безопасного извлечения съёмных носителей, и теперь можно отключить подсказки при наведении на файлы на рабочем столе.
В целом это релиз для тех, кто работает на Wayland или просто хочет больше удобства в повседневной работе с ОС.
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🎁 И мозг прокачать, и макбук утащить!
Proglib.academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Условия:
1️⃣ Покупаешь любой курс Proglib до 15 ноября.
2️⃣ Проходишь минимум 2 учебные недели (можно осилить за два вечера).
3️⃣ Пишешь куратору в чат своего курса: #розыгрыш.
Что за курсы?
— Математика для Data Science (6 месяцев боли и просветления).
— Основы Python, ML, алгоритмы, AI-агенты и даже курс для тех, кто в IT, но не кодит.
👉 Участвовать в розыгрыше
Proglib.academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻
Условия:
1️⃣ Покупаешь любой курс Proglib до 15 ноября.
2️⃣ Проходишь минимум 2 учебные недели (можно осилить за два вечера).
3️⃣ Пишешь куратору в чат своего курса: #розыгрыш.
Что за курсы?
— Математика для Data Science (6 месяцев боли и просветления).
— Основы Python, ML, алгоритмы, AI-агенты и даже курс для тех, кто в IT, но не кодит.
👉 Участвовать в розыгрыше
Команды сразу ставят Istio, Cilium, кастомные CNI. Хотят mTLS, продвинутый роутинг, observability из коробки. Но не понимают, как работает базовая сетка Kubernetes.
Что происходит
Под не может достучаться до другого пода. Вы не знаете, это проблема в CNI, в service mesh, в DNS, или в самом Kubernetes. Дебажите три дня, гуглите ошибки Istio. Потом удаляете Istio — всё работает.
Service mesh добавляет sidecar в каждый под, свой control plane, свои CRD. Каждый слой — новая точка отказа.
Как исправить
Начните с простого:
apiVersion: v1
kind: Service
metadata:
name: backend
spec:
selector:
app: backend
ports:
- port: 80
targetPort: 8080
Разберитесь, как поды находят друг друга через DNS. Как ClusterIP балансирует запросы. Как работает Ingress.
Когда поймёте базу, добавьте Ingress-NGINX для внешнего трафика.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🛠 Состав systemd
systemd — это современная система инициализации и управления службами в Linux, которая значительно упрощает и ускоряет запуск и управление системой.
Сделали инфографику с составом systemd. В следующих постах разберём кто за что отвечает.
🐸 Библиотека devops'a
#архитектура_на_салфетке
systemd — это современная система инициализации и управления службами в Linux, которая значительно упрощает и ускоряет запуск и управление системой.
Сделали инфографику с составом systemd. В следующих постах разберём кто за что отвечает.
#архитектура_на_салфетке
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏2👍1
🧑💻 Ошибка неуязвимого
Kubernetes по умолчанию не строгий. Можно запустить контейнер от root, использовать image:latest, дать всем cluster-admin. Кластер работает — зачем что-то менять?
Что происходит
Контейнер от root может сбежать на ноду через уязвимость. Тег :latest означает, что в prod может задеплоиться любая версия — вчера работало, сегодня нет. Роль cluster-admin даёт права удалить весь кластер.
Как исправить
Настройте RBAC. Создайте роли с минимальными правами:
Добавьте Pod Security Standards:
Теперь в namespace нельзя запустить контейнер от root, с privileged, без securityContext.
Если нужна более гибкая политика — Kyverno или OPA Gatekeeper. Напишете правило один раз — оно будет работать для всех подов.
🐸 Библиотека devops'a
#арсенал_инженера
Kubernetes по умолчанию не строгий. Можно запустить контейнер от root, использовать image:latest, дать всем cluster-admin. Кластер работает — зачем что-то менять?
Что происходит
Контейнер от root может сбежать на ноду через уязвимость. Тег :latest означает, что в prod может задеплоиться любая версия — вчера работало, сегодня нет. Роль cluster-admin даёт права удалить весь кластер.
Как исправить
Настройте RBAC. Создайте роли с минимальными правами:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
Добавьте Pod Security Standards:
apiVersion: v1
kind: Namespace
metadata:
name: production
labels:
pod-security.kubernetes.io/enforce: restricted
Теперь в namespace нельзя запустить контейнер от root, с privileged, без securityContext.
Если нужна более гибкая политика — Kyverno или OPA Gatekeeper. Напишете правило один раз — оно будет работать для всех подов.
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1