Пятничный деплой
4.37K subscribers
1.29K photos
24 videos
163 files
7.56K links
Подборка ссылок, статей и постов из мира DevOps\SRE\разработки. Если вы хотите прислать фидбек, интересную статью или просто поболтать пишите @count0ru https://t.me/s/count0_digest
Download Telegram
Forwarded from Sysadmin Tools 🇺🇦
k8s-bootstrapper

Bootstrapping a Production-Ready DigitalOcean Kubernetes Cluster Using Terraform and Argo CD

#kubernetes #devops #terraform #grafana #prometheus #k8s #loki #argocd #gitops
Forwarded from GitHub'ненько
Robusta KRR
Robusta KRR (Kubernetes Resource Recommender) is a CLI tool for optimizing resource allocation in Kubernetes clusters. It gathers pod usage data from Prometheus and recommends requests and limits for CPU and memory. This reduces costs and improves performance.
#k8s #devops #cloud #resources
https://github.com/robusta-dev/krr
Forwarded from DevOps FM
Шифрование бэкапов в ClickHouse: виды, инструменты и настройка

Один из клиентов компании Nixys обнаружил, что резервные копии ClickHouse, которые он хранит в S3 провайдера CROC, не очень-то и шифруются. А ФСТЭК суров. Была поставлена задача: настроить шифрование бэкапов.

В новой статье Николай, DevOps-инженер Nixys, покажет, как они это сделали. Вы узнаете о различных методах шифрования данных на стороне сервера в Amazon S3 — SSE-C, SSE-KMS и SSE-S3. А ещё познакомитесь с таким инструментом как clickhouse-backup.

Приятного чтения!

#Хабр #статья_Nixys #devops #ClickHouse
Forwarded from DevOps FM
🔍 Формируем SLO: пять советов от команды Google SRE

SLO (цель уровня обслуживания) — это соглашение в рамках SLA о конкретном показателе, который определяет качество обслуживания, предоставляемого конкретным сервисом или системой. Соглашения SLO формируют ожидания клиента и показывают команде DevOps, на какие показатели она должна ориентироваться и каких целей нужно достичь. Например, SLO может определять минимальное время доступности сервиса или максимальное время ответа на запрос.

1. Не выбирайте цель, основываясь только на текущих показателях

Да, понимание достоинств и пределов системы имеет важное значение. Но бездумная адаптация показателей может привести к тому, что вам придётся поддерживать систему, способную достигнуть целей только благодаря вашим чрезмерным героическим усилиям. Во многих случаях требует реорганизация.

2. Будьте проще

Сложные расчёты SLI могут скрыть изменения в производительности системы и усложнят поиск причины возникшей проблемы.

3. Избегайте абсолюта

Заманчиво иметь систему, которая может принимать неограниченно растущую нагрузку без увеличения задержки. Но это требование нереально. Система, которая стремится к таким идеалам, вероятно, потребует много времени и ресурсов на проектирование и создание, будет дорогой в эксплуатации… и, скорее всего, окажется неоправданно лучше той, которую пользователи уже были бы рады иметь.

4. Используйте как можно меньше SLO

Выберите достаточное количество SLO, чтобы обеспечить хорошее покрытие атрибутов системы. Защищайте выбранные вами SLO: если вы никогда не можете выиграть спор о приоритете конкретной SLO, вероятно, не стоит рассматривать эту SLO. Однако не все атрибуты системы можно преобразовать в SLO: трудно подсчитать, например, уровень "user delight" с помощью SLO.

5. Не торопитесь достичь совершенства

Лучше начать с плавающей цели, которую со временем можно сделать более точной, чем выбрать слишком строгую цель, а потом её ослабить в случае, если вы обнаружите, что она не достижима. Уточните SLO тогда, когда ваша команда узнает больше о поведении системы под нагрузкой.

#DevOps #SRE #Google
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
Всем DevOps! 🖖

Возможно, вы уже слышали о nxs-backup или читали статью о nxs-marketplace-terraform. Если нет, то мы немного расскажем об полезных open-source инструментах и репозиториях Nixys.

nxs-backup — инструмент резервного копирования для создания и доставки бэкапов, совместимый с дистрибутивами GNU/Linux.

nxs-data-anonymizer — инструмент для анонимизации дампа различных баз данных PostgreSQL и MySQL/MariaDB/Percona.

nxs-universal-chart — репозиторий с универсальным Helm-чартом, направленным на развёртывание приложений в Kubernetes, OpenShift и другие оркестраторы, совместимые с API Kubernetes.

nxs-marketplace-terraform — репозиторий, содержащий модули Terraform для упрощения развёртывания и настройки основных инструментов с поддержкой различных версий ПО и нескольких облачных сервисов.

nxs-marketplace-ansible — репозиторий с ролями Ansible, которые позволяют легко развёртывать и настраивать основные технологии.

nxs-marketplace-k8s-apps — репозиторий, содержащий модули Terraform для простого развертывания и настройки основных ресурсов с различными версиями программного обеспечения.

Если вы ими уже пользуетесь, то будет здорово, если поделитесь опытом в комментариях. А если хотите попробовать — приглашаем на GitHub!

#open_source #DevOps
Forwarded from DevOps FM
👩‍💻 tmux — это консольная утилита-мультиплексор, которая представляет собой современную копию GNU Screen под лицензией BSD. Первый выпуск tmux состоялся аж в 2007 году, а последнюю версию 3.4 выпустили в феврале 2024.

Статья Петра на Medium поможет познакомиться с tmux поближе. Вы узнаете о главных плюсах этого терминального мультиплексора и получите парочку советов по работе с ним.

#devops #tmux
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
Стартуем эту неделю с интересным проектом от подписчика!

💻 LazyJournal — удобный TUI для утилиты journalctl и тех, кто работает с логами в файловой системе и контейнерами Docker и Podman.

Проект написан на Go с использованием библиотеки gocui. 
Ментейнер вдохновлялся работами Jesse Duffield, по этому интерфейс будет знаком всем тем, кто уже использует LazyDocker и LazyGit.

Основные фичи:

1) Вывод выбранного журнала в режиме реального времени;

2) Поддержка динамических фильтров вывода и нечёткого поиска с подсветкой найденных слов;

3) Возможность просматривать все доступные лог-файлы из каталога /var/log с сортировкой по дате изменения (например, для Apache, Nginx или СУБД), включая доступ на чтение архивных логов.

Этот TUI избавит системных администраторов от бесконечных grep’ов и ручного поиска журналов. Попробуйте, оцените и обязательно дайте обратную связь автору!

Если у вас тоже есть интересные open-source проекты — делитесь в комментариях 👇

🤩 Кстати, ловите полезные инструменты и от нас:

nxs-backup — инструмент резервного копирования для создания и доставки бэкапов, совместимый с дистрибутивами GNU/Linux.

nxs-data-anonymizer — инструмент для анонимизации дампа различных баз данных PostgreSQL и MySQL/MariaDB/Percona.

#open_source #devops #ваши_инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
🎙 В эфире DevOps FM — свежий пятничный подкаст.

Когда-то мы уже рассказывали о Kube FM — подкасте, направленном на расширение знаний о Kubernetes, новейших инструментах, тенденциях и обмене экспертным мнением.

В новом выпуске "Which Kubernetes PostgreSQL operator should you choose?" Дэвид Вагнер рассказывает, как выбрать наиболее подходящий оператор PostgreSQL для Kubernetes. Обсуждаются популярные операторы, их особенности и рекомендации по использованию в кластерах. Подходит как для новичков, так и для опытных пользователей Kubernetes.

🖖 Желаем приятного прослушивания и хороших выходных! А тем, кто работает — спокойных дежурных смен!

#подкаст #пятница #DevOps
Forwarded from DevOps FM
👩‍💻 В этот понедельник разбираемся, как Kubernetes API Server Proxy может стать слабым звеном в безопасности вашего кластера.

В своем блоге Рори опубликовал разбор, где наглядно показал механизм работы и скрытые подводные камни. Как сервер Kubernetes API может выступать в качестве HTTP-прокси-сервера? Есть ли ограничения использования и лазейки для атак?

Узнаем все плюсы, минусы и советы по работе — тут.

#devops #kubernetes #безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
👩‍💻 Обновление политик Docker Hub

Docker объявили об изменениях после обратной связи от сообщества. Команда Docker пересмотрела свои планы, чтобы улучшить поддержку экосистемы и опыт пользователей.

Смотрим на изменения:

1. Оплата за скачивание образов отменена

Docker отказались от планов по введению платы для всех пользователей. Объяснили это желанием укрепить платформу и предоставить разработчикам возможность создавать, делиться и внедрять инновации без ненужных барьеров.

2. Обновление лимитов на скачивание

Теперь для неаутентифицированных пользователей будет доступно 10 pull-запросов в час. Аутентифицированным пользователям увеличили лимит с 40 до 100 запросов в час. Для пользователей с подпиской ограничений не планируется.

3. Отсрочка платы за хранение

Планы по введению платы за хранение данных на Docker Hub отложены на неопределённый срок. Вместо этого Docker сосредоточится на создании инструментов для управления хранилищем. О любых изменениях в политике будет объявлено за 6 месяцев.

Изменения вступают в силу с 1 апреля этого года.

#DevOps #Docker #DockerHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevOps FM
📚 Пятничное чтиво на канале DevOps FM.

Вам когда-нибудь приходилось выгонять AWS из вашей кровати? Нет? А вот Дилану Айри пришлось.

Автор статьи делится своим опытом исследования уязвимостей в умной кровати Eight Sleep. Устройство стоимостью $2000 предлагает регулировку температуры, однако для работы кровати требуется интернет, подписка за 19$ и мобильное приложение.

После получения прошивки устройства, которую можно легко скачать, Дилан провел исследование и не был особенно впечатлен тем, что обнаружил:
• бэкдор, который дает компании возможность получить доступ к кровати по SSH, выполнить произвольный код и оттуда исследовать всю сеть пользователя;
• активный ключ AWS, который мог быть использован для передачи данных в Amazon.

Прочитать все подробности и узнать, как автор решил проблему, можно в статье 👈

Желаем всем, кто отдыхает, хороших выходных, а тем, кто дежурит — спокойных смен без серьёзных алертов!

#devops #пятничное_чтиво
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Репозиторий: Руководство по DevOps

Руководство по DevOps включает все конфигурации от этапа разработки до рабочей среды с важными заметками для эффективной отладки.

— Этот репозиторий содержит:
1. Определение DevOps;
2. Дорожную карту DevOps;
3. Практические лабораторные работы по IBM Kubernetes;
4. Как стать DevOps-инженером за шесть месяцев и многое другое.

Ссылка на GitHub (https://github.com/Tikam02/DevOps-Guide)

#DevOps #GitHub
@hackernews_lib
Forwarded from DevOps FM
Всем DevOps! Мы уже рассказывали вам про зомби-ресурсы в облачных инфраструктурах. Вот только облака — не единственное место их обитания.

🧟 Зомби-memcg — остаточные memory cgroups в Linux, которые продолжают существовать, даже если все связанные с ними процессы завершены. Они могут нести за собой высокие нагрузки, нехватку производительности системы и памяти.

Почему это происходит?

• Баги в старых версиях ядра Linux, где очистка невозможна из-за ссылок на memcg;
• Некоторые структуры данных продолжают "удерживать" memcg, даже если сам он уже не используется (например pagecache, kernel stack, shared memory и др.).

О том, как найти и победить зомби-memcg рассказали в статье Oracle. Читаем и проверяем, не спряталась ли у вас парочка зомби!

#DevOps #Linux
Forwarded from DevOps FM
На канале DevOps FM — подборка свежих статей и релизов.

🟡 Опубликована Debian 12.10

Новый релиз включает в себя улучшенный установочный носитель, 66 багфиксов и 44 обновления с устранением уязвимостей. Версия 12.10 является последней в ветке, следующий мажорный выпуск Debian 13 должен выйти во второй половине 2025 года.

Полный список фиксов — тут.

⚫️ В блоге CNCF рассказали о создании масштабируемых, гибких и безопасных API с использованием Kubernetes и микросервисов. В статье обсуждаются инструменты и практики для обеспечения высокой доступности и эффективности API, а также рекомендации по обеспечению безопасности с помощью Kubernetes.

🟡 Релизнули Git v2.49. В обновление вошли 460 функций и исправления ошибок от 89 разработчиков. Из интересного:

• Добавили новый инструмент git backfill;
git clone научился делать shallow clone для одного коммита;
• Ускорили упаковку благодаря name‑hash v2;
• Были добавлены первые фрагменты кода Rust.

⚫️ OpenSearch поделились новой функцией векторного поиска с GPU ускорением, которая будет добавлена в предстоящем релизе OpenSearch 3.0. Функция необходима для ускорения обработки больших объёмов векторных данных. Для этого обновили архитектуру, алгоритмы взаимодействия и сделали сравнительный анализ.

Подробное описание и результаты анализа смотрим в блоге.

#Devops #Git #OpenSearch
Forwarded from DevOps FM
👩‍💻 Disaster recovery: пять рекомендаций от Terraform

Disaster recovery — это стратегии и инструменты, которые помогают быстро восстановить инфраструктуру после сбоев и минимизировать простой. Традиционные DR-решения могут стоить сотни тысяч долларов в год. Terraform помогает реализовать эффективные стратегии аварийного восстановления, сокращая время простоя и потери данных, а также уменьшая затраты на инфраструктуру.

4 основных стратегии, которые можно реализовать с Terraform:

1. Backup & Restore

Самая базовая и наименее затратная стратегия. Однако, в зависимости от объема данных и процесса восстановления, может привести к высоким показателям RTO и RPO. Используйте -refresh-only для синхронизации состояния после восстановления из резервной копии, чтобы избежать дрейфа.

2. Pilot Light

Это стратегия, когда минимально необходимая инфраструктура постоянно поддерживается в рабочем состоянии, а при сбое быстро разворачивается полноценная копия. Через условные выражения в Terraform можно разворачивать только минимальный набор ресурсов, а остальные оставить выключенными. С такой стратегией масштабировать инфраструктуру до необходимого состояния быстрее, чем в Backup & Restore.

3. Active/Passive

При выборе данной стратегии, у вас будет два окружения: активное и пассивное, которое стоит в режиме ожидания и включается в случае сбоя основной. Пассивное минимально синхронизируется с активным, но не обслуживает пользователей. В Terraform можно отдельно помечать активный и пассивный стенд в конфигурации через conditionals. А при инциденте менять роли, активируя пассивную инфраструктуру и почти мгновенно масштабируя её до полной.

4. Multi-Region Active/Active

Дорогостоящая, но надёжная стратегия. Полноценные среды развёрнуты в нескольких регионах и одновременно обслуживают пользователей. Если один регион выходит из строя, трафик автоматически перенаправляется в другие работоспособные среды. Здесь модули Terraform могут использоваться для инкапсуляции и повторного использования компонентов инфраструктуры.

#devops #terraform
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Azalio_tech (Mikhail [azalio] Petrov)
🔒 Отключаем анонимный доступ к kube-apiserver, но оставляем health checks!

Привет! Недавно ко мне пришел коллега-безопасник (Дима привет!) с интересным вопросом: как полностью отключить анонимный доступ к API-серверу Kubernetes, но оставить рабочими проверки /livez, /readyz и /healthz? 🤔 Сходу не ответил, полез копаться в исходниках и KEPах.

Проблема в том, что по умолчанию (`--anonymous-auth=true`) любой может дернуть эндпоинты health-чеков и не только health-чеков:

curl -k https://<API_SERVER_IP>:6443/livez
# Output: ok

Это удобно, но создает потенциальный вектор атаки, если RBAC настроен не идеально или найдется уязвимость. Безопасники такое не любят. 😟

К счастью, в KEP-4633 сообщество Kubernetes предложило решение! Теперь можно тонко настроить, к каким путям разрешен анонимный доступ, даже если глобально он выключен.

Сделать это можно так:

Сначала выключаем глобальный анонимный доступ в манифесте kube-apiserver:

spec:
containers:
- command:
- kube-apiserver
# ... другие флаги ...
- --anonymous-auth=false # <--- Выключаем!
- --authentication-config=/etc/kubernetes/auth-config.yaml # <--- Указываем конфиг


Затем создаем файл конфигурации /etc/kubernetes/auth-config.yaml на control plane нодах и монтируем его в под kube-apiserver:

# /etc/kubernetes/auth-config.yaml
apiVersion: apiserver.config.k8s.io/v1beta1
kind: AuthenticationConfiguration
anonymous:
enabled: true # Включаем анонимный доступ *только* для указанных путей
conditions:
- path: /livez
- path: /readyz
- path: /healthz

*(Не забудьте добавить volume и volumeMount в манифест kube-apiserver для этого файла)*

В итоге получаем:
- Запросы к /livez, /readyz, /healthz проходят как system:anonymous.
- Запросы к другим путям (например, /apis) без аутентификации получают 401 Unauthorized.

Кстати, эта функциональность появилась как Alpha в Kubernetes 1.31 и стала Beta в 1.32.

Теперь можно спать спокойнее, зная, что анонимный доступ под контролем!

#kubernetes #k8s #security #authentication #kubeadm #devops #infosec