DevOps
8.77K subscribers
1.39K photos
880 videos
28 files
1.74K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Alaz: Продвинутый eBPF-агент для наблюдаемости Kubernetes – легко отслеживайте взаимодействия сервисов и метрики производительности в вашем окружении K8s. Получайте глубокие инсайты с помощью карт сервисов, метрик и других инструментов, оставаясь в курсе критических системных аномалий 🐝.

https://github.com/getanteon/alaz

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍1
Короткий совет по Linux 💡

Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.

Команда rmdir гарантирует, что каталог пуст перед его удалением.

В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍41
Autobase

Это инструмент, разработанный для автоматизации развёртывания и управления PostgreSQL-кластерами с использованием Ansible. Он поддерживает широкий набор функций, включая настройку репликации, автоматизацию резервного копирования с помощью инструментов, таких как pgBackRest и WAL-G, мониторинг состояния кластеров, а также настройку высокодоступной инфраструктуры (HA).

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

https://github.com/vitabaks/autobase

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍2
Media is too big
VIEW IN TELEGRAM
Kubelab: Виртуальная лаборатория Kubernetes

Проект Kubelab предлагает готовую инфраструктуру для обучения и экспериментов с Kubernetes. Лаборатория позволяет легко развернуть изолированные кластеры для изучения Kubernetes, тестирования приложений и разработки. Это идеальный инструмент для новичков и профессионалов, желающих оттачивать навыки или тестировать конфигурации в безопасной среде.

https://github.com/natrontech/kubelab

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍6
🤡29😁20👎8🔥2❤‍🔥1🥴1😭1
Как создать отказоустойчивые системы

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Dragonfly Operator — это Kubernetes-оператор, используемый для развертывания и управления экземплярами Dragonfly внутри ваших Kubernetes-кластеров. Основные возможности включают:

- Автоматическое переключение при сбоях (failover)
- Масштабирование по горизонтали и вертикали с пользовательской стратегией развёртывания
- Аутентификация и поддержка TLS для сервера
- Автоматические снимки (snapshots) в PVC и S3
- Мониторинг с помощью Prometheus и Grafana
- Широкие возможности конфигурации

https://github.com/dragonflydb/dragonfly-operator

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍4😢1
Что такое DevOps и почему он автоматизировал не всё

Вы сделали заказ в интернет-магазине, а он внезапно завис в самый разгар скидок. За кулисами этого сервиса работают сотни строк кода и ещё больше человеческой поддержки. DevOps — это способ организовать эту работу так, чтобы новые функции доходили до вас быстрее и без сбоев. Он объединяет разработчиков, тестировщиков и операторов, автоматизируя рутинные шаги и следя за сервисом в режиме реального времени. Звучит хорошо, но на практике автоматизация закрывает далеко не всё.

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

https://habr.com/ru/companies/ruvds/articles/950758/

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3👎1
Pghero

Панель управления производительностью для Postgres

https://github.com/ankane/pghero

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Как снизить расходы на мониторинг: более разумный подход к данным

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

В этой статье рассматриваются только решения с открытым исходным кодом. VictoriaMetrics — такой проект с открытым исходным кодом. Вы получите максимальную пользу от этой статьи, если знакомы с Prometheus, Thanos, Mimir или VictoriaMetrics.

https://habr.com/ru/articles/849176/

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Для чего используется Kubectl?

kubectl — это командная утилита для взаимодействия с Kubernetes-кластером. Она используется для выполнения различных операций по управлению кластерами и развертыванию приложений. С kubectl можно выполнять следующие задачи:

1. Управление ресурсами: создавать, обновлять и удалять ресурсы в кластере (например, Pod, Deployment, Service).
2. Мониторинг и отладка: просматривать информацию о текущем состоянии ресурсов и кластера, диагностировать проблемы.
3. Запуск команд в кластере: запускать команды внутри контейнеров, например, для проверки их состояния или выполнения отладочных задач.
4. Обновление приложений: управлять версиями и состоянием развернутых приложений, поддерживать их обновление и масштабирование.
5. Настройка кластера: управлять конфигурациями, такими как сетевые настройки и политика безопасности.

Пример команды kubectl для получения списка всех подов в текущем пространстве имён:


kubectl get pods


Эта команда возвращает информацию обо всех запущенных подах, их состоянии и доступных IP-адресах.

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍5
Пишем Ansible-модули для управления разными системами хранения данных через Swordfish

Большинство современных систем хранения данных (СХД) предоставляют REST API для управления ими, включая настройку, конфигурирование, выполнение различных команд, получение логов, работу с пользователями и т.д. В зависимости от производителя СХД REST API могут отличаться друг от друга. Если вы используете несколько разных систем, их одновременная поддержка становится проблемой: нужно учитывать многообразие протоколов, интерфейсов, команд и способов взаимодействия с API.

Меня зовут Александр Пономарев, вместе с группой студентов СПбПУ Петра Великого на базе Лаборатории YADRO мы изучали способы сделать управление разными СХД менее трудоемким. Вариант, на котором мы остановились, — использовать системы, которые удовлетворяют спецификации Swordfish, в связке с Ansible. Рассказываю о проекте, который мы выполняли с инженерами компании и преподавателями университета.

https://habr.com/ru/companies/yadro/articles/784070/

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Unused

CLI-инструмент, экспортер для Prometheus и модуль на Go для перечисления неиспользуемых дисков во всех облачных провайдерах

Этот репозиторий содержит библиотеку на Go для поиска ваших неиспользуемых постоянных дисков у разных облачных провайдеров, а также бинарные файлы для отображения этой информации в CLI или экспорта метрик для Prometheus.

В Grafana Labs мы размещаем рабочие нагрузки у разных облачных провайдеров. Оркестрация рабочих нагрузок управляется Kubernetes, и мы обнаружили, что из-за некоторых ошибок в конфигурации системы хранения у нас накапливалось множество неиспользуемых ресурсов, особенно постоянных дисков. Эти утечки ресурсов стоят денег, и, поскольку эти ресурсы больше не используются, это приводит к финансовым потерям. Эта библиотека и сопутствующие инструменты помогут вам определить такие ресурсы и очистить их.

https://github.com/grafana/unused

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍3
Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?

Docker базируется на технологиях:

🔸 namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
🔸 cgroups — позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities — позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces — (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

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

Компоненты докера:

🔻 Docker Daemon — тот самый Container Engine; запускает контейнеры.
🔻 Docker CLI — утилита по управлению Docker.
🔻 Dockerfile — инструкция по тому, как собирать образ.
🔻 Image — образ, из которого раскатывается контейнер.
🔻 Container
🔻 Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍62
Для чего нужна команда git commit --amend?

Команда git commit --amend используется для изменения последнего коммита в локальном репозитории. Она позволяет исправить сообщение коммита, добавить в него изменения, которые не были учтены, или удалить файлы, которые не должны были быть в коммите.

Основные случаи использования:

1. Изменение сообщения коммита: если было допущено опечатку или необходимо уточнить содержание сообщения коммита.

git commit --amend -m "Новое сообщение коммита"


2. Добавление изменений в последний коммит: если были забыты изменения, которые нужно включить в последний коммит, можно их добавить, выполнить git add для этих файлов и затем git commit --amend, чтобы объединить их с предыдущим коммитом.

3. Удаление ненужных файлов: если случайно добавлен лишний файл, можно удалить его с помощью git rm, затем выполнить git commit --amend, чтобы пересобрать коммит без этого файла.

После выполнения git commit --amend создается новый коммит с измененной историей, что важно помнить, если работа ведется в команде.

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍61
Архитектура кластеров Kubernetes - выбор размера рабочего узла

Стоит ли создавать кластер Kubernetes с меньшим количеством крупных узлов или с большим количеством мелких узлов? В этой статье мы рассмотрим все плюсы и минусы.

Когда вы создаете кластер Kubernetes, одним из первых вопросов, который у вас может возникнуть, является: "Какой тип рабочих узлов я должен использовать и сколько их нужно?".

Если вы создаете локальный кластер, стоит ли заказывать серверы последнего поколения или использовать дюжину или около того старых машин, которые валяются в вашем центре обработки данных?

Или если вы используете управляемый сервис Kubernetes, например Google Kubernetes Engine (GKE), следует ли вам использовать восемь экземпляров n1-standard-1 или два экземпляра n1-standard-4 для достижения желаемой вычислительной мощности?

https://learnk8s.io/kubernetes-node-size

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍2
💡 Сегодня немного про боль Kubernetes-кластеров

Когда у тебя всё крутится в k8s, кажется - удобно: автоскейлинг, изоляция, сервисы живут своей жизнью. Но как только в кластере начинают появляться десятки namespace и сотни подов, без нормальной политики ресурсов всё превращается в хаос.

👉 У каждого пода должны быть requests и limits. Если этого нет - кластер живёт как коммуналка без счётчиков: кто успел, тот и съел. Один жадный контейнер может легко задушить соседей.

👉 Мониторинг на уровне ResourceQuota и LimitRange реально спасает от «сюрпризов» в проде.

👉 А ещё - включите PodPriority и Preemption. Это даёт возможность критичным сервисам выжить, даже если какой-то non-prod под начал жрать всю память.

В итоге Kubernetes сам по себе не магия. Это инструмент. А инструмент требует гигиены и правил.

Подпишись 👉@devopslib
👍6🔥1
Sudo без бинарного setuid или SSH через UNIX-сокет

В этом посте я подробно расскажу, как заменить sudo (программу с setuid), используя SSH через локальный UNIX-сокет.

Я считаю, что программы с setuid / setgid — это устаревшая часть наследия UNIX, которую следует исключить. В будущем посте я объясню причины безопасности, стоящие за этим утверждением.

Это связано с работой группы Confined Users SIG в Fedora.

https://tim.siosm.fr/blog/2023/12/19/ssh-over-unix-socket/

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍41👎1🔥1
Teller — универсальный open-source менеджер секретов для разработчиков

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

Вместо использования кастомных скриптов, токенов в файлах .zshrc, видимых команд EXPORT в истории bash, ошибочно размещенных файлов .env.production и других уязвимостей на рабочей станции, просто используйте Teller и подключите его к любому хранилищу секретов, ключевому хранилищу или облачному сервису, который вам нужен (Teller поддерживает HashiCorp Vault, AWS Secrets Manager, Google Secret Manager и многие другие).

Вы можете использовать Teller для упорядочения своего окружения или внедрения его как процесса и лучшей практики для вашей команды.

https://github.com/tellerops/teller

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
mk - Интерактивный запуск задач для Makefile(Taskfile.yml)

Функции:
- Интерактивный интерфейс: Просматривайте и выбирайте доступные команды make с помощью стрелок или фильтруйте, вводя текст.
- Документация: Ознакомьтесь с описанием каждой команды, чтобы понять её назначение и использование.
- Клавиши, как в Vim: Используйте j и k для навигации, Enter для выполнения, а q для выхода.
- Фильтрация: Быстро находите команды, вводя часть их названия. Нажмите ? для справки.
- Удалённый Makefile: Загрузите Makefile с удалённого URL и выполните команды.
- Локальный Makefile: Загрузите Makefile из любой директории и выполните команды.
- Поддержка Taskfile.yml: Загрузите Taskfile.yml из удалённого URL или локального пути и выполните задачи.

https://github.com/orangekame3/mk

Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
👍4