14 Jan 2026, 19:21 UTC82 views9 reactionsread 11 August 2026 Photo
Столкнулся с проблемой: оператор PostgreSQL для Kubernetes CloudNativePG, с плагином бэкапов Barman Cloud генерирует десятки тысяч GET и LIST запросов к S3 хранилищу. Причина — сайдкар контейнер постоянно проверяет WAL архивы для управления политикой хранения.
Что не помогло:
- Отключение бекапов WAL — диск 100Гб забился за 2 дня (внезапно это базовая фича плагина, WAL журналы все равно создавались)
- Оптимизация …
👏4👍3🔥2
27 Sept 2025, 17:02 UTC118 views8 reactionsread 11 August 2026 Подводные камни Kubernetes аннотаций 🤔
Недавно столкнулся с интересной ошибкой при деплое Helm чарта:
StatefulSet.apps "pgsql" is invalid:
spec.template.annotations: Invalid value: "checksum/secret/pgsql"
Оказывается, в Kubernetes есть строгие правила для имён аннотаций. Ключ аннотации может содержать только один слеш /, который разделяет префикс и имя.
❌ Неправильно:
annotations:
checksum/secret/pgsql: "..."
…
👍5✍3
10 Sept 2025, 19:17 UTC122 views9 reactionsread 11 August 2026 Словил интересный баг в GitLab CI, делюсь кейсом. 💡
Пайплайн, который работал годами, внезапно упал с ошибкой об отсутствующем пакете. При этом пакет был на месте в package.json, а Dockerfile давно никто не редактировал.
Проблема:
Для кэширования и ускорения последующих сборок было две задачи:
- в одной задаче создавалась папка node_modules от пользователя root.
- в следующей задаче она копировалась в образ, где ра…
✍6👏3
30 Aug 2025, 20:18 UTC101 views11 reactionsread 11 August 2026 YAML кажется простым, пока не наткнёшься на «магические» значения, отступы и странные преобразования типов.
Вот быстрый чек-лист, чтобы не попасть:
1. Булевы ловушки
# Плохо
enabled: yes # станет true
answer: No # станет false
# Хорошо
enabled: true
answer: "No" # строка
2. Ведущие нули
# Плохо
port: 080
# Хорошо
port: "080" # строка
3. Даты как строки
# Плохо
version: 2025-08-16
# Хорошо
version: "2025-…
👍7✍4
21 Aug 2025, 07:12 UTC83 views7 reactionsread 11 August 2026 В YAML списки (массивы) — это «последовательности». Их пишут двумя способами:
Блочный: с дефисами — самый читаемый
servers:
- web01
- web02
В строку (flow): компактно, но хуже на длинных списках
web_servers: [web01, web02]
Можно вкладывать списки в словари и наоборот:
environments:
- name: production
servers:
- prod-web01
- prod-db01
Длинные элементы удобно хранить как многострочные строки:
…
👍4✍3
19 Aug 2025, 07:11 UTC73 views15 reactionsread 11 August 2026 Если вы кодируете данные в Base64 для URL или пытаетесь сгенерировать JWT, символы + и / могут некорректно обрабатываться. Для этого придуман стандарт Base64URL, где они заменены на - и _, а паддинг = убран.
В PHP готовых функций нет, но их легко написать на основе base64_encode и strtr. Главное — не забыть при декодировании вернуть = на место, иначе ничего не получится.
Кодирование:
rtrim(strtr(base64_encode($data…
👍9🔥3✍2🤓1
16 Aug 2025, 10:05 UTC64 views13 reactionsread 11 August 2026 🚀 Next.js: JSON 404 для несуществующих API-роутов
В App Router есть нюанс: для несуществующих API-запросов возвращается HTML-страница из not-found.tsx. Но клиентам API нужен JSON, а не HTML 🙃
Решение — catch-all роут
Создаём роут, который перехватывает все неизвестные запросы:
/app/api/[...not_found]/route.ts
export async function GET() {
return Response.json({ error: 'Not Found' }, { status: 404 });
}
export a…
👍6✍3🔥3🤔1
20 Oct 2024, 19:17 UTC200 views10 reactionsread 11 August 2026 Оптимизация приоритетов процессов с nice и ionice:
- nice: регулирует приоритет использования процессора (диапазон от -20 до +19).
- ionice: управляет приоритетом операций ввода-вывода с тремя классами (Idle, Best-effort, Realtime).
Пример запуска резервного копирования с низким приоритетом:
nice -n 10 ionice -c 3 backup_script.sh
Так можно снизить влияние фоновых процессов на активные задачи.
https://varnote.ru/…
👍6👌2🔥2
14 Oct 2024, 06:29 UTC155 views8 reactions1 Starread 11 August 2026 Пустой коммит в Git — это коммит, который не изменяет содержимое файлов проекта. Он создается специально без модификаций, что может показаться бесполезным на первый взгляд.
Пустой коммит можно создать с помощью команды:
git commit --allow-empty -m "Это пустой коммит"
Команда --allow-empty явно указывает Git на то, что нужно создать коммит даже в отсутствии изменений.
Такой коммит может показаться необычным и ненуж…
👍4🔥3💊1
Signed Sergey Voloshin
13 Oct 2024, 19:48 UTC130 views6 reactionsread 11 August 2026 Принудительное удаление namespace в Kubernetes
Namespaces в Kubernetes — это виртуальные кластеры, которые помогают изолировать ресурсы в кластере. Удаление namespace может происходить по стандартному сценарию или принудительно.
Для удаления пространства имён выполните команду:
kubectl delete namespace [your-namespace]
Вместе с удалением namespace, также удаляются все объекты, связанные с этим пространством.
Ес…
👍5✍1
1 Sept 2024, 10:32 UTC149 views6 reactionsread 11 August 2026 Способ установки n в домашнюю директорию пользователя, без необходимости каждый раз использовать sudo.
Если кратко, просто выполните в терминале:
curl -L https://bit.ly/n-install | N_PREFIX=~/.n bash -s -- -y
https://varnote.ru/other/install-n-without-sudo/
👍4🔥2
3 Aug 2024, 22:03 UTC156 views6 reactions1 Starread 11 August 2026 Docker предоставляет гибкий способ управления приложениями с помощью контейнеров. Однако бывают ситуации, когда логи контейнеров могут быстро расти в размере и заполнять дисковое пространство, что может привести к различным проблемам, включая снижение производительности и отказ в обслуживании.
Рассмотрим, как ограничить размер логов Docker, чтобы избежать этих проблем.
https://varnote.ru/docker/docker-logs/
👍4🔥2
Showing the 12 most recent of 20 posts we hold for @varnote. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.