DevOps
8.82K subscribers
1.44K photos
920 videos
28 files
1.84K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
systemd: как писать юниты с элегантной перезагрузкой

Разработка системы с элегантным завершением работы может оказаться той ещё пляской с бубном. В идеальном мире каждый сервис управлялся бы юнитом systemd. ExecStart запускала бы процесс, обрабатывающий SIGTERM, а ExecStop оповещало бы процесс и осуществляло блокировку, которая бы корректно завершала процесс и его ресурсы.

Однако многие программы завершаются некорректно, а то и вовсе сбивают все настройки при закрытии. В этой статье мы рассмотрим поведение systemd при завершении работы и методы написания юнитов systemd для выборочной очистки (custom cleanup) перед закрытием.

https://www.psdn.io/posts/systemd-shutdown-unit/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🛠Btop++ — это высокопроизводительный монитор ресурсов, написанный на C++, который предоставляет детальную информацию о загрузке процессора, использовании памяти, активности дисков, сетевой активности и процессах. Он является продолжением проектов bashtop и bpytop, предлагая улучшенную производительность и расширенные возможности.

Основные возможности btop++:

🔹Интуитивно понятный интерфейс с поддержкой мыши и клавиатуры.
🔹Подробная информация о выбранных процессах.
🔹Фильтрация и сортировка процессов, включая древовидное отображение.
🔹Отправка сигналов процессам.
🔹Настраиваемые параметры через меню интерфейса.
🔹Автоматическое масштабирование графиков сетевой активности.
🔹Отображение активности и скорости ввода/вывода для дисков.
🔹Поддержка различных тем оформления.

Проект активно развивается, в последнюю версия v1.4.0 добавлена поддержка Intel GPU и NetBSD.

💻Для пользователей Windows доступна специальная версия — btop4win, которая предоставляет аналогичный функционал и поддерживает мониторинг GPU и температуры процессора при использовании версии с Open Hardware Monitor Report.

https://github.com/aristocratos/btop

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Doas – утилита, которая позволяет обычным пользователям выполнять задачи от имени root, так же как это делает sudo. Она была разработана проектом OpenBSD как минималистичная альтернатива sudo.

Запускайте apt install doas.

Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет — создайте.

Сымитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавим в конфиг такое:


permit persist user as root


Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.

Допустим нужно сделать подобное, но для определенной группы, добавляем в конфиг строчку:


permit persist :wheel as root


Теперь все кто в группе wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:


permit persist user as root
permit nopass :user as root cmd apt


Да, конфиг более читабельный чем у sudo

Конфиг sudo

%wheel ALL=(ALL) NOPASSWD: ALL


Конфиг doas

permit nopass :wheel as root


Ну и с помощью doas можно запустить root shell такой командой:

doas -s


#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Из каких компонентов состоит k8s и каково их назначение?

Kubernetes (K8s) включает в себя плоскость управления и плоскость данных.

Плоскость управления — это уровень управления, который работает на узлах, называемых главными узлами, и может работать в конфигурации с одним главным узлом или несколькими главными узлами.
Плоскость управления включает в себя:
ETCD: хранилище конфигурации кластера
Kubernetes API: предоставляет API для взаимодействия между компонентами K8s и клиентами внутри и вне кластера
Kubernetes controller manager: реализует контроллеры, управляющие основными сущностями кластера, такими как контроллер узлов, контроллер задач и контроллер срезов конечных точек
Kubernetes scheduler: выбирает узлы, на которых будут запускаться POD
cloud controller manager: используется для реализации функций, специфичных для работы с облаком (если кластер K8s работает в облачной среде)

Плоскость данных состоит из компонентов, работающих на каждом узле:
kubelet: отслеживает изменения конфигурации узла, применяет изменения конфигурации, выполняет проверки контейнера, сообщает о статусе контейнера, работает с плагином CRI и обеспечивает функции запуска и остановки контейнера
kube-proxy: отвечает за сетевой компонент, работает с плагином CNI и обеспечивает работу сущности «сервис» на своем узле.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Шпаргалка по удалению томов в Docker


📦 Удаление неиспользуемых томов

Удаляет все тома, не прикреплённые ни к одному контейнеру:


docker volume prune


🔒 Подтверждение будет запрошено. Добавь -f для принудительного удаления:
docker volume prune -f



Удаление конкретного тома


docker volume rm <имя_тома>


Пример:


docker volume rm my_data_volume



📋 Список всех томов


docker volume ls



🔍 Поиск имени тома, связанного с контейнером


docker inspect <имя_контейнера> --format '{{ json .Mounts }}' | jq


или без jq:



docker inspect <имя_контейнера> --format '{{range .Mounts}}{{.Name}} {{end}}'



💣 Удаление всех томов (⚠️ Осторожно!)


docker volume rm $(docker volume ls -q)



🧼 Удаление всех ресурсов, включая тома


docker system prune --volumes


Добавь -a и -f, чтобы удалить всё без подтверждений:



docker system prune -a --volumes -f


#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍31🔥1🥰1
🛠 SRE vs DevOps
Разные роли — единая миссия

DevOps-инженеры:
• CI/CD пайплайны
• Инфраструктура как код (IaC)
• Автоматизация деплоймента
• Подготовка среды для приложений
• Взаимодействие между командами
• Оптимизация рабочих процессов разработчиков

Инженеры надёжности сайтов (SRE):
• Надёжность системы и аптайм
• SLOs/SLIs и бюджеты ошибок
• Планирование ёмкости
• Автоматизированная реакция на инциденты
• Управление изменениями и снижение рисков
• Масштабный мониторинг производительности

🧩 Разные роли — единая цель: быстрая, надёжная и устойчивая доставка ценности пользователю.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍1
🎓 Как изучать Kubernetes - пошагово

Если ты хочешь разобраться в Kubernetes с нуля, эта карта - твой навигатор. Разбито по 6 ключевым блокам, чтобы учиться было легко и по делу 👇

1️⃣ Основы и архитектура
🔹 Что такое Kubernetes
🔹 Кластер, Node, Pod
🔹 Control Plane
🔹 Worker Node

2️⃣ Нагрузки и контроллеры
🔸 Pod, ReplicaSet, Deployment
🔸 StatefulSet, DaemonSet
🔸 Job и CronJob
🔸 Labels и Selectors
🔸 Rolling Updates
🔸 Автомасштабирование (HPA, VPA, Cluster Autoscaler)

3️⃣ Сеть и управление сервисами
🟣 Services и кластерная сетевая модель
🟣 ClusterIP, NodePort, LoadBalancer
🟣 Ingress
🟣 Политики сети
🟣 DNS-обнаружение сервисов

4️⃣ Хранилище и конфигурация
🟪 Volumes и Persistent Volumes
🟪 Storage Classes
🟪 Stateful приложения
🟪 ConfigMap и Secret

5️⃣ Безопасность и контроль доступа
🟫 RBAC и сервисные аккаунты
🟫 Secrets Management
🟫 Admission Controllers
🟫 Pod Security
🟫 TLS и API доступ

6️⃣ DevOps и деплоймент
🟩 Kubectl, YAML-файлы
🟩 Helm Charts
🟩 Интеграция с CI/CD
🟩 GitOps (ArgoCD, Flux)
🟩 Мониторинг
🟩 Облачные провайдеры: EKS, GKE, AKS

🧠 Запоминай структуру, изучай блок за блоком, и скоро будешь собирать продакшн-кластеры с закрытыми глазами!

📌 Сохрани себе и поделись с теми, кто хочет прокачать Kubernetes 🙌

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
🔥2
🛡️ Helmsman — это инструмент командной строки для управления Kubernetes через Helm с использованием простого и декларативного файла конфигурации.

С Helmsman ты можешь:

* устанавливать, обновлять и удалять релизы Helm;
* управлять правами доступа и пространствами имён Kubernetes;
* запускать проверки безопасности перед развёртыванием;
* создавать dry-run планы и сравнивать их перед применением;
* организовать деплой по зависимостям и приоритетам.

Конфигурация пишется в YAML и поддерживает шаблонизацию, переменные окружения и условия. Helmsman может использоваться как в CI/CD пайплайнах, так и вручную.


https://github.com/mkubaczyk/helmsman

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍1
Этот файл был удален пользователем

Встречаемся в Москве с теми, кто отвечает за хранение данных бизнеса. Обсудим, как решить задачу со звездочкой — уберечь массивы файлов и резервных копий от атак шифровальщиков, утечки или случайной перезаписи.

На бизнес-ужине эксперты провайдера ИТ-инфраструктуры Selectel расскажут:
как устроено хранилище S3 под капотом;
какие угрозы данным существуют и как выстроить многослойную систему защиты;
почему защита данных — это не статья расходов, а управление рисками.

Будет актуально руководителям в ИТ-компаниях, старшим архитекторам, системным администраторам. Поговорим и про стратегию хранения, и про реализацию.

📆 24 сентября (чт), 18:30
📍Москва, м. Динамо

Участие бесплатное, дождитесь подтверждения заявки. Смотрите полную программу и регистрируйтесь: https://slc.tl/n69e9

Реклама. АО "Селектел". erid:2W5zFGanoh3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💡Большая шпаргалка по Linux Storage Stack

➡️оригинал файла в комментах

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Автоматизация платформы не отбирает у вас интересные задачи. Она забирает рутину.

Deckhouse Platform берёт на себя обновление, масштабирование и поддержку инфраструктуры «из коробки». Освободившееся время остаётся вам — на то, что вам действительно нравится.

Обсудите с инженерами Deckhouse, что можно автоматизировать в вашем стеке 👈
👍2
🍔DevOps как бургер (DaaB)

Дорожная карта DevOps-инженера должна выглядеть так:

1. Изучите язык программирования (Python, Go и т.д.) для написания скриптов автоматизации.

2. Освойте одну операционную систему (Linux) и её командную строку (CLI).

3. Освойте управление серверами, веб-серверами, включая прокси, такие как Nginx или IIS.

4. Изучите контейнеризацию с использованием Docker.

5. Ознакомьтесь с оркестрацией контейнеров с помощью Kubernetes.

6. Откройте для себя инфраструктуру как код (IaC),
используя такие инструменты, как Terraform, Ansible, Chef или Puppet, для подготовки и управления конфигурациями.

7. Поймите сетевые протоколы: DNS, IP-адреса, порты и модель OSI.

8. Примите практики непрерывной интеграции/непрерывного развертывания (CI/CD) для автоматизации этапов доставки и развертывания приложений.

9. Освойте методы мониторинга для контроля приложений, сервисов и инфраструктуры в реальном времени.

10. Получите практический опыт работы с облачными провайдерами, такими как AWS и Azure.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
🔥5👍1
DevOps практикум

1 - Базовая автоматизация с использованием ANSIBLE
2 - Создаем роли ANSIBLE
3 - Учимся хранить роли Ansible на GitLab
4 - Знакомимся с переменными в ANSIBLE
5 - Знакомимся с магическими переменными в ANSIBLE
6 - Избавляемся в ANSIBLE от использования ROOT (отладка кибербезопасности)
7 - Централизованное развертывание пакетов с ANSIBLE

источник

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
👍6🔥41
🚀 Шпаргалка по Docker 🐳

🔹 Сборка (Build)
🔹 Запуск (Run)
🔹 Шаринг (Share)
🔹 Управление (Management)


📌 Сборка образов
📍 Создать образ из Dockerfile и присвоить тег:

docker build -t myimage:1.0 .

📍 Посмотреть локальные образы:

docker image ls

📍 Удалить образ:

docker image rm alpine:3.4


📌 Запуск контейнеров
📍 Запустить контейнер на порту 5000:

docker container run --name web -p 5000:80 alpine:3.9

📍 Остановить контейнер:

docker container stop web

📍 Принудительно завершить контейнер:

docker container kill web

📍 Список запущенных контейнеров:

docker container ls

📍 Удалить все контейнеры:

docker container rm -f $(docker ps -aq)


📌 Работа с образами (Share)
📍 Скачать образ из реестра:

docker pull myimage:1.0

📍 Изменить тег у локального образа:

docker tag myimage:1.0 myrepo/myimage:2.0

📍 Запушить образ в реестр:

docker push myrepo/myimage:2.0


📌 Управление Docker (Management)
⚙️ docker app – Управление приложениями
⚙️ docker image – Управление образами
⚙️ docker container – Управление контейнерами
⚙️ docker network – Управление сетями
⚙️ docker volume – Управление хранилищами
⚙️ docker stack – Управление Docker Stack
⚙️ docker swarm – Управление кластером Swarm
⚙️ docker system – Управление всей системой

📝 Сохраните, поделитесь с друзьями и подписывайтесь на канал! 💙🐳

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
🔥21
Вопрос, который часто задают в начале собеса

Представлен вывод команды top. Что означает каждая запись в выводе?

top — 10:44:36 up 91 days, 19:29, 7 users, load average: 0,00, 0,02, 0,05
Tasks: 156 total, 1 running, 155 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,0 us, 1,5 sy, 0,0 ni, 96,9 id, 0,0 wa, 0,0 hi, 0,0 si, 1,5 st
KiB Mem : 12137392 total, 6227844 free, 1117728 used, 4791820 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem

top — утилита
10:44:36 — время системы
up — сколько система работает с момента последнего запуска
7 user — количество авторизованных юзеров в системе
load average: 0.00, 0.02, 0.05 — параметр средней нагрузки на систему за период времени 1 минута, 5 минут, 15 минут
156 total — всего процессов в системе
1 running — количество процессов в работе
155 sleeping — ожидание процесса или сигнала
0 stopped — количество приостановленных процессов сигналом STOP или выполнение трассировки
0 zombie — количество зомби-процессов, которые завершили своё выполнение, но присутствующие в системе, чтобы дать родительскому процессу считать свой код завершения.

#devops #девопс

📲 Мы в MAX

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