Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.36K photos
70 videos
4 files
2.56K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
Kubernetes в облаке: краткая инструкция по развёртыванию

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

1. Kubeadm — утилита, которая автоматизирует инициализацию и настройку кластера Kubernetes.

2. Containerd — менеджер контейнеров, который обеспечивает выполнение и управление контейнерами без лишних зависимостей.

3. Cilium CNI — сетевой плагин, использующий eBPF для высокопроизводительного сетевого взаимодействия и безопасности внутри кластера.

Для развёртывания Kubernetes в облаке используйте kubeadm для инициализации кластера, установив необходимые пакеты и выполнив команду kubeadm init с указанием сети подов.

Контейнерная среда настраивается с помощью containerd: после установки сгенерируйте стандартную конфигурацию и перезапустите сервис.

Для сетевого взаимодействия используйте Cilium CNI, установив его через Helm после добавления официального репозитория.

📎 Подробная инструкция в статье

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
11
🚨 Почему стоит избегать phpMyAdmin на проде

phpMyAdmin — удобный, но уязвимый инструмент. Вот почему:

• Легко доступен по предсказуемому URL — мечта для хакеров.

• Подвержен атакам перебором.

• Имеет историю уязвимостей, которые регулярно находят и используют.

Что делать:

1. Использовать SSH-туннель, если нужен удалённый доступ.

2. Перейти на MySQL Workbench, DBeaver, DataGrip и др.

3. Ограничить доступ по IP, использовать HTTPS и 2FA.

➡️ Оригинальная статья

💬 Какие инструменты для баз данных используете вы? Пишите в комментарии👇

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
2🥱3👍2
⚙️ #инфографика про работу Kubernetes

На изображении показана архитектура Kubernetes и как она работает:

Пользовательский интерфейс и CLI (kubectl) — точка взаимодействия разработчика с кластером Kubernetes.

Kubernetes Master (Control Plane) — управляющий центр:

• API Server — принимает и обрабатывает запросы.
• Controller Manager — контролирует и поддерживает заданное состояние кластера.
• Etcd — key-value хранилище для конфигураций и состояния.

Worker Nodes (рабочие узлы) — выполняют приложения:

• Kubelet — управляет контейнерами на узле.
• Container Runtime — среда выполнения контейнеров.
• Kube-proxy — управляет сетевыми взаимодействиями между подами.

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
11
⚡️ Оптимизируем терминал с fzf

fzf — универсальный инструмент, который может ускорить работу в командной строке. Вместо того чтобы вручную вводить длинные команды или искать файлы по дереву каталогов, можно использовать fzf и работать в разы быстрее.

Практические применения fzf:

1️⃣ История команд: настройте fzf на Ctrl+R, чтобы искать команды в истории за считанные секунды.

2️⃣ Поиск файлов: используйте fzf с find или rg для поиска файлов по проекту без долгих ожиданий.

3️⃣ Быстрая смена директорий: привяжите Alt+C для мгновенного перехода в нужную папку, выбрав её через fzf.

4️⃣ Интеграция с Vim: откройте файл прямо из редактора командой vim $(fzf), а в Neovim используйте встроенную поддержку.

5️⃣ Гибкая настройка: создайте свои алиасы, скрипты и горячие клавиши для задач, которые выполняете каждый день.

С fzf вы перестанете тратить время на рутинный поиск и ускорите работу в терминале.

➡️ Подробнее с примерами в статье

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
11
⌨️ tldr-pages: шпаргалки по командам терминала

tldr-pages — это проект с краткими и понятными примерами команд для терминала. Вместо десятков страниц документации вы получите простые примеры, которые сразу можно использовать.

Проект охватывает команды Linux, macOS и Windows, включая git, curl, docker и многое другое. Благодаря сообществу, база команд постоянно пополняется и актуализируется.

Установить tldr можно через пакетные менеджеры вроде npm, apt, brew и другие.

После установки достаточно ввести:
tldr git

чтобы получить краткую справку по нужной команде.

tldr подходит как новичкам, так и опытным пользователям, позволяя экономить время и быстро находить нужные примеры. В проекте можно участвовать, добавляя новые команды и улучшая существующие страницы.

➡️ Репозиторий проекта

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
1
🆚 Различия между DaemonSets и Deployments в k8s

Kubernetes предоставляет два способа управления подами: DaemonSets и Deployments. Сейчас разберём основные отличия между ними.

Назначение:
• Deployment: управляет статическими приложениями, обеспечивая масштабирование, обновления и откаты.

• DaemonSet: гарантирует запуск одного пода на каждом узле кластера или их подмножеств).

Управление подами:

• Deployment: количество подов определяется через replicas. Поды распределяются по узлам автоматически, но могут группироваться на одних узлах. Для распределения требуется PodAntiAffinity.

• DaemonSet: поды запускаются на каждом узле автоматически. При добавлении/удалении узлов DaemonSet адаптируется.

Стратегии обновлений:

• Deployment: поддерживает rolling updates (постепенное обновление) и rollback (откат к предыдущей версии).

• DaemonSet: обновления выполняются последовательно для каждого пода, но откаты не поддерживаются нативно.

Использование ресурсов:

• DaemonSet может быть избыточным в больших кластерах, если задача не требует присутствия на всех узлах. Например, запуск 15 подов на 50 узлах приведет к неэффективному использованию ресурсов.

• Deployment позволяет гибко масштабировать приложение независимо от количества узлов.

Типичные сценарии:

• Deployment: веб-серверы, микросервисы, пакетные задания.

• DaemonSet: логирование, мониторинг, сетевые компоненты.

Примеры манифестов

Deployment — Nginx:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80


DaemonSet — Fluentd для сбора логов:

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd
spec:
selector:
matchLabels:
name: fluentd
template:
metadata:
labels:
name: fluentd
spec:
containers:
- name: fluentd
image: fluentd:latest
volumeMounts:
- name: varlog
mountPath: /var/log
volumes:
- name: varlog
hostPath:
path: /var/log


📎 Подробности в статье

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍7
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 StackQL: Интерактивное взаимодействие с API через SQL

StackQL предлагает унифицированную среду для управления облачными ресурсами с помощью знакомого SQL-синтаксиса.

Что это такое

StackQL — это открытый фреймворк на основе SQL, который позволяет пользователям выполнять запросы, провижининг и управление облачными и SaaS-ресурсами. Он поддерживает популярные облачные провайдеры, такие как Google Cloud, AWS, Microsoft Azure, Digital Ocean и другие.

Доступен для Windows, MacOS и Linux и поддерживает несколько режимов использования, включая интерактивную оболочку REPL, утилиту командной строки и выполнение запросов через файлы IQL.

Основные Возможности StackQL

Навигация по облачным API: используйте команды SHOW SERVICES и SHOW RESOURCES для ознакомления с доступными сервисами и ресурсами. Например:
SHOW SERVICES IN google LIKE '%compute%';SHOW RESOURCES IN google.compute LIKE '%instances%';


Операции CRUD: выполняйте создание, чтение, обновление и удаление ресурсов с помощью знакомых SQL-запросов.

Примеры:
Создание ресурса:
INSERT INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'stackql-demo', 'europe-north1-a', 'disk-1', 16;


Обновление ресурса:
UPDATE google.compute.disks
SET sizeGb = 32WHERE project = 'stackql-demo' AND zone = 'europe-north1-a' AND name = 'disk-1';


Удаление ресурса:
DELETE FROM google.compute.disks
WHERE disk = 'disk-1' AND project = 'stackql-demo' AND zone = 'europe-north1-a';


Управление состоянием ресурсов: используйте команды EXEC для управления состоянием ресурсов, такими как запуск и остановка виртуальных машин. Примеры:

Остановка инстанса:
EXEC google.compute.instances.stop  @instance = 'instance-1',
@project = 'stackql-demo', @zone = 'europe-north1-a';


Запуск инстанса:
EXEC google.compute.instances.start
@instance = 'instance-1', @project = 'stackql-demo',
@zone = 'europe-north1-a';


➡️ Подробнее про инструмент

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🚀 DevDocs.io – must-have инструмент

DevDocs – универсальный хаб документации, объединяющий справочные материалы по Kubernetes, Docker, Terraform, AWS, Bash, Linux, Git, CI/CD и многим другим технологиям в одном месте.

Особенности:

• Мгновенный поиск — находим нужную команду в пару кликов

• Офлайн-доступ — документация всегда под рукой, даже без интернета

• Горячие клавиши — быстрая навигация без мышки.

Только документация, только хардкор

➡️ Читать документацию удобно

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥21😁1
⚡️ Как разбудить сервер, если он спит

Если у вас дома или в офисе стоит Linux-сервер, который большую часть времени простаивает, но при этом потребляет электричество – пора решить эту проблему.

Что можно сделать

Автоматизировать процесс сна и пробуждения сервера по требованию. Это позволит сократить энергопотребление и увеличить срок службы оборудования, при этом сервер будет включаться сам при необходимости.

Как это настроить

• Активируем Wake-on-LAN с поддержкой unicast — сервер будет реагировать не только на специальные WoL-пакеты, но и на обычные обращения по сети.

• Добавляем "дружественного соседа" — это устройство (например, Raspberry Pi), которое будет «притворяться» сервером, отвечая на сетевые запросы от имени спящего устройства.

• Настраиваем Avahi — для сетевого объявления сервисов, даже если сервер спит.

Ваш сервер будет включаться автоматически, когда кто-то в сети попытается к нему подключиться, а в остальное время — экономить энергию.

💬 Как вы решаете вопрос энергопотребления? Делитесь опытом в комментариях! 👇

📎 Подробный гайд

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🌚2🔥1
Karpenter vs. Kubernetes Cluster Autoscaler

Если ваш Kubernetes-кластер нуждается в автоматическом масштабировании, у вас есть два мощных инструмента: Cluster Autoscaler (CA) и Karpenter. Давайте разберёмся какой выбрать.

Cluster Autoscaler — классический подход

Автоматически добавляет узлы в кластер, если поды не могут запуститься из-за нехватки ресурсов, и удаляет их, когда они простаивают.

Он работает с группами узлов, что требует предварительной настройки, но обеспечивает стабильное масштабирование.

Кроме того, CA поддерживает AWS, GCP, Azure и другие облачные платформы.

Минусы:

• Масштабирование зависит от предустановленных групп узлов.
• Медленнее реагирует на изменения.

Karpenter — гибкость и скорость

Karpenter динамически создаёт новые узлы в реальном времени, когда это необходимо, без предварительно настроенных групп узлов. Он автоматически подбирает размер и тип узла в зависимости от требований нагрузки, что делает масштабирование более гибким.

Кроме того, Karpenter может использовать Spot-инстансы, помогая оптимизировать затраты на инфраструктуру.

Благодаря своей архитектуре он реагирует на изменения в кластере быстрее, чем традиционные инструменты автоматического масштабирования.

Минусы:

• Требует более глубокой настройки.
• Пока поддерживает только AWS (официально).

💬 Какой инструмент используете вы? Делитесь опытом в комментариях👇

📎 Подробнее в источнике

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41💯1👾1
🔄 Flux обновился

Вышло обновление Flux — инструмента для управления Kubernetes в стиле GitOps. Разбираем, что изменилось и как это повлияет на использование Flux.

Главные обновления

Настраиваемые проверки состояния

Теперь можно использовать Common Expression Language для настройки гибких проверок состояния ресурсов.

Поддержка аутентификации через GitHub App

Flux теперь умеет работать с GitHub App вместо SSH/HTTPS-токенов.

Гибкие метаданные для уведомлений
Теперь можно добавлять настраиваемые метаданные к событиям, улучшая контекст оповещений в Slack, Discord, Microsoft Teams и других системах

Улучшение CLI и диагностики
Обновленный flux CLI получил новые команды для анализа и устранения неполадок в кластере.

Эфемерные окружения с Flux Operator
Теперь можно автоматически деплоить изменения из Pull Requests в временные тестовые окружения.

➡️ Подробнее в блоге разработчиков

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🎉1👾1
💻 ООП в Bash

Bash++ — это расширение для Bash, которое добавляет поддержку объектно-ориентированного программирования (ООП). Теперь можно создавать классы, объекты, методы и даже использовать инкапсуляцию.

Как это выглядит

Вот пример простого класса и объекта в Bash++:
@class Bashpp {
@public author="Andrew S. Rightenburg"
@public source="https://github.com/rail5/bashpp"
@public license="GNU GPL v3"

@public @method printInfo {
echo "Bash++ is a superset of Bash that adds support for classes and objects."
echo "It's meant to be a simple way to add object-orientation to Bash scripts."
echo "Author: @this.author"
echo "Source: @this.source"
echo "License: @this.license"
}
}

@Bashpp myBashpp
@myBashpp.printInfo


➡️ Захотелось попробовать? Заходите на официальный сайт проекта

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰2👾2😢1
📱🧮 Как Android обошел iOS в создании идеального калькулятора

Когда в Google решили написать по-настоящему точный калькулятор для Android, они и не подозревали, что эта задача потребует участия выдающегося эксперта по C/C++ и создания гибридной математической системы.

👉 Читать статью

#новость #android #ios
👍31
Совет на 2025-й — будьте осторожнее с выбором работы.

IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных.

Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦‍♂️

Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях:

— Зарплаты на уровне рынка, а не на уровне голодного студента
— Никаких «мы молодая и дружная семья» — только адекватные условия
— Проверенные работодатели, а не стартапы из сомнительных сфер

Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях.

Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs
🐳 Docker обновляет политику Docker Hub

Docker отменяет жесткие лимиты на загрузки и пересматривает свою политику хранения данных.

Ключевые изменения

Безлимитные загрузки для подписчиков Docker Pro, Team и Business.

Лимиты на загрузки смягчены:

• Анонимные пользователи — до 10 загрузок в час.
• Бесплатные зарегистрированные пользователи — до 100 загрузок в час (было 40).

Плата за хранение данных отложена. Пока что разработчикам не придется платить за объемы образов.

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

➡️ Подробнее в блоге Docker

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2😢1
🛡 Нашли главных защитников инфраструктуры:

▪️ Kubernetes — полевой медик. Реанимирует упавшие поды и проводит балансировку под огнём противника.

▪️ Terraform — прапорщик инфраструктуры. Наводит порядок в облаках железной рукой.

▪️ Jenkins — ветеран CI-войск. До сих пор стоит на посту, хотя все уже перешли на GitHub Actions.

Девопс спит, развертывание идет 🫡 Кого забыли в этом списке?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2❤‍🔥1🌚1
🔄 Обновление Ubuntu

20 февраля команда Ubuntu представила второе точечное обновление для версии 24.04 LTS. Это обновление включает в себя накопленные исправления безопасности, багфиксы и обновления программного обеспечения, обеспечивая стабильность и совместимость системы.

Ключевые изменения:

Обновленное ядро Linux 6.11: улучшенная поддержка оборудования и оптимизация производительности.
OMG UBUNTU

Графический стек Mesa 24.2.8: повышенная стабильность и поддержка современных графических приложений.
OMG UBUNTU

Обновленные версии основных приложений: включая GNOME Shell 46.0 и LibreOffice 24.2.7.

📎 Подробнее про обновление

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥰2
🆚 Apache vs Nginx

Эти два веб-сервера — одни из самых популярных решений для хостинга, но у каждого свои особенности. Разбираем, что лучше для вашего проекта

🔹 Apache — проверенный временем гигант, удобный и гибкий, но может терять производительность под высокой нагрузкой.
🔹 Nginx — асинхронный монстр, идеально подходящий для высоконагруженных сайтов и быстрого сервинга статического контента.

Ключевые различия

Архитектура обработки соединений:

• Apache: процессно-ориентированная, каждый запрос — отдельный процесс/поток.
• Nginx: событийно-ориентированная, асинхронная, обрабатывает множество соединений в одном процессе.

Производительность:

• Apache: может быть менее эффективен при обработке большого количества одновременных соединений.
• Nginx: оптимизирован для высокой производительности, особенно при обслуживании статического контента.

Гибкость и модули:


• Apache: обширная экосистема модулей, поддержка .htaccess для настройки на уровне каталогов.
• Nginx: меньше модулей, но высокая скорость и эффективность.

➡️ Подробнее о различиях

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔2💯1