Forwarded from Bash Советы
🔥 Мониторинг нагрузки на сервер
Иногда нужно быстро понять, какие процессы сильнее всего нагружают систему. Этот скрипт выводит топ-5 «прожорливых» процессов по CPU и RAM 🖥️
📌 Как использовать:
1. Сохраните в файл, например
2. Сделайте исполняемым:
3. Запускайте при необходимости:
Так вы всегда будете видеть, что больше всего грузит ваш сервер 🚀
👉@bash_srv
Иногда нужно быстро понять, какие процессы сильнее всего нагружают систему. Этот скрипт выводит топ-5 «прожорливых» процессов по CPU и RAM 🖥️
#!/bin/bash
# автор: https://t.me/bash_srv
echo "=== Топ-5 процессов по CPU ==="
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 6
echo ""
echo "=== Топ-5 процессов по RAM ==="
ps -eo pid,ppid,cmd,%mem --sort=-%mem | head -n 6
📌 Как использовать:
1. Сохраните в файл, например
top_procs.sh2. Сделайте исполняемым:
chmod +x top_procs.sh
3. Запускайте при необходимости:
./top_procs.sh
Так вы всегда будете видеть, что больше всего грузит ваш сервер 🚀
👉@bash_srv
👍5🔥1
Kubernetes Full Course In 10 Hours | Kubernetes Tutorial For Beginners
Это видео Edureka Kubernetes Full Course поможет вам понять и изучить основы Kubernetes. Этот курс по Kubernetes идеально подходит как для новичков, так и для профессионалов, которые хотят освоить основы Kubernetes.В этом видео рассматриваются следующие темы:
Introduction
Introduction to Containers
Need for Kubernetes
What is Kubernetes and What it's not
Kubernetes vs Docker Swarm
Use-Case: Kubernetes
Introduction to Namespaces
Types of Namespaces
Container Design Patterns
Introduction to Docker
Kubernetes Installation Steps
Kubernetes Architecture
Kubernetes Dashboard
Types of View in Kubernetes Dashboard
Kubernetes Cluster
Pods, Services & Ingress Networks
Case Study
Hands-On
Replication Controller & ReplicaSet
Deployment Controllers
Deployment Use-Cases
Kubernetes Multiple Schedulers
Set up a Multi-Master cluster using kubeadm
Network Failures
Cluster Troubleshooting
https://www.youtube.com/watch?v=y3WTwzx5ABk
#devops #Kubernetes
Подпишись 👉@i_DevOps
Это видео Edureka Kubernetes Full Course поможет вам понять и изучить основы Kubernetes. Этот курс по Kubernetes идеально подходит как для новичков, так и для профессионалов, которые хотят освоить основы Kubernetes.В этом видео рассматриваются следующие темы:
Introduction
Introduction to Containers
Need for Kubernetes
What is Kubernetes and What it's not
Kubernetes vs Docker Swarm
Use-Case: Kubernetes
Introduction to Namespaces
Types of Namespaces
Container Design Patterns
Introduction to Docker
Kubernetes Installation Steps
Kubernetes Architecture
Kubernetes Dashboard
Types of View in Kubernetes Dashboard
Kubernetes Cluster
Pods, Services & Ingress Networks
Case Study
Hands-On
Replication Controller & ReplicaSet
Deployment Controllers
Deployment Use-Cases
Kubernetes Multiple Schedulers
Set up a Multi-Master cluster using kubeadm
Network Failures
Cluster Troubleshooting
https://www.youtube.com/watch?v=y3WTwzx5ABk
#devops #Kubernetes
Подпишись 👉@i_DevOps
YouTube
Kubernetes Full Course In 10 Hours | Kubernetes Tutorial For Beginners | Learn Kubernetes | Edureka
🔥𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐊𝐮𝐛𝐞𝐫𝐧𝐞𝐭𝐞𝐬 𝐂𝐞𝐫𝐭𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎"): https://www.edureka.co/kubernetes-certification
This Edureka Kubernetes Full Course video will help you understand and learn the fundamentals of Kubernetes. This Kubernetes Tutorial is ideal…
This Edureka Kubernetes Full Course video will help you understand and learn the fundamentals of Kubernetes. This Kubernetes Tutorial is ideal…
👍5
Buildg - Интерактивный отладчик для Dockerfile, с поддержкой IDE (VS Code, Emacs, Neovim и т.д.).
Source-level inspection
Breakpoints and step execution
Interactive shell on a step with your own debugigng tools
Based on BuildKit (with unmerged patches)
Supports rootless
https://github.com/ktock/buildg
#devops #девопс
Подпишись 👉@i_DevOps
Source-level inspection
Breakpoints and step execution
Interactive shell on a step with your own debugigng tools
Based on BuildKit (with unmerged patches)
Supports rootless
https://github.com/ktock/buildg
#devops #девопс
Подпишись 👉@i_DevOps
❤3👍3
Работа с правами доступа файлов и директорий в Linux
Назначить пользователя vasya владельцем файла file
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
Назначить владельца и группу для файла /file
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
Удалить все права на директорию /directory для группы и остальных
Изменить группу-владельца для file на new_group
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
Удалить STIKY-бит с директории /home/public
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
Удалить SUID-бит с файла /bin/binary_file
Установить SGID-бит на директории /home/public
Удалить SGID-бит с директории /home/public
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
Листинг текущего каталога с правами доступа
#devops #девопс
Подпишись 👉@i_DevOps
# chown vasya /fileНазначить пользователя vasya владельцем файла file
# chown -R vasya directoryРекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /fileНазначить владельца и группу для файла /file
# chmod ugo+rwx /directoryУстановить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directoryУдалить все права на директорию /directory для группы и остальных
# chgrp new_group fileИзменить группу-владельца для file на new_group
# chmod o+t /home/publicУстановить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/publicУдалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_fileУстановить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_fileУдалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/publicУстановить SGID-бит на директории /home/public
# chmod g-s /home/publicУдалить SGID-бит с директории /home/public
# find / -perm -u+sПоиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lhЛистинг текущего каталога с правами доступа
#devops #девопс
Подпишись 👉@i_DevOps
❤7👍2
ArgoCD — мощный инструмент для GitOps-подхода, но его использование в мультикластерной среде накладывает дополнительные требования к безопасности.
🔑 Основные идеи из статьи:
- Распределённая архитектура: при работе с несколькими кластерами важно правильно выстраивать доверительные отношения между ними, чтобы избежать компрометации всей инфраструктуры.
- Аутентификация и авторизация: рекомендуется использовать внешние провайдеры идентификации (OIDC), что упрощает управление доступом и позволяет централизовать контроль.
- RBAC и политики безопасности: ограничение прав до минимально необходимых снижает риск злоупотреблений и атак через скомпрометированные учётные данные.
- Секреты и их хранение: лучше всего использовать внешние менеджеры секретов (например, HashiCorp Vault, AWS Secrets Manager), а не хранить их напрямую в кластере.
- Zero Trust подход: предполагается минимизация доверия даже внутри инфраструктуры — каждый запрос должен быть аутентифицирован и авторизован.
В итоге, защищённый мультикластерный ArgoCD — это комбинация централизованного управления доступом, минимальных прав, надёжного хранения секретов и постоянного мониторинга. Такой подход снижает поверхность атаки и повышает устойчивость CI/CD-процессов.
https://www.tremolo.io/post/securing-multi-cluster-argocd
#devops #девопс
Подпишись 👉@i_DevOps
🔑 Основные идеи из статьи:
- Распределённая архитектура: при работе с несколькими кластерами важно правильно выстраивать доверительные отношения между ними, чтобы избежать компрометации всей инфраструктуры.
- Аутентификация и авторизация: рекомендуется использовать внешние провайдеры идентификации (OIDC), что упрощает управление доступом и позволяет централизовать контроль.
- RBAC и политики безопасности: ограничение прав до минимально необходимых снижает риск злоупотреблений и атак через скомпрометированные учётные данные.
- Секреты и их хранение: лучше всего использовать внешние менеджеры секретов (например, HashiCorp Vault, AWS Secrets Manager), а не хранить их напрямую в кластере.
- Zero Trust подход: предполагается минимизация доверия даже внутри инфраструктуры — каждый запрос должен быть аутентифицирован и авторизован.
В итоге, защищённый мультикластерный ArgoCD — это комбинация централизованного управления доступом, минимальных прав, надёжного хранения секретов и постоянного мониторинга. Такой подход снижает поверхность атаки и повышает устойчивость CI/CD-процессов.
https://www.tremolo.io/post/securing-multi-cluster-argocd
#devops #девопс
Подпишись 👉@i_DevOps
👍3
📈Picosnitch - мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF
Получение уведомлений при подключении к сети новой программы или при ее изменении
Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени
При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal
Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах
Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации
Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения
Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно
https://github.com/elesiuta/picosnitch
https://elesiuta.github.io/picosnitch/
#devops #девопс
Подпишись 👉@i_DevOps
Получение уведомлений при подключении к сети новой программы или при ее изменении
Контролирует пропускную способность сети, разбивая трафик по исполняемым файлам, хэшам, родителям, доменам, портам или пользователям с течением времени
При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal
Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах
Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации
Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения
Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно
https://github.com/elesiuta/picosnitch
https://elesiuta.github.io/picosnitch/
#devops #девопс
Подпишись 👉@i_DevOps
👍4❤1
Перестаньте переживать об allowPrivilegeEscalation
Многие инженеры теряются в нюансах настройки allowPrivilegeEscalation в Kubernetes. Автор статьи простым языком объясняет, зачем нужен этот флаг, как он работает и почему его наличие или отсутствие не критично для большинства сценариев. Если хотите понять, как устроена безопасность контейнеров, — эта статья для вас.
https://habr.com/ru/companies/flant/articles/923432/
original https://blog.christophetd.fr/stop-worrying-about-allowprivilegeescalation/
#devops #девопс
Подпишись 👉@i_DevOps
Многие инженеры теряются в нюансах настройки allowPrivilegeEscalation в Kubernetes. Автор статьи простым языком объясняет, зачем нужен этот флаг, как он работает и почему его наличие или отсутствие не критично для большинства сценариев. Если хотите понять, как устроена безопасность контейнеров, — эта статья для вас.
https://habr.com/ru/companies/flant/articles/923432/
original https://blog.christophetd.fr/stop-worrying-about-allowprivilegeescalation/
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Armadа — это open-source система для управления заданиями (job scheduling) в Kubernetes кластерах. Она ориентирована на высокопроизводительные вычисления (HPC) и работу с большими кластерами.
🔹 Основные идеи:
- Очереди: задания распределяются через очереди с гибкими правилами приоритизации.
- Масштабируемость: поддержка тысяч узлов и миллионов заданий.
- Интеграция с Kubernetes: Armada выступает как надстройка над существующими кластерами.
- Справедливое распределение ресурсов: балансировка между пользователями и проектами.
- gRPC API: для отправки и управления заданиями.
Архитектура включает Armada server (центральный сервис с API и логикой очередей) и executor (компонент, работающий в Kubernetes-кластере и запускающий задания). Таким образом, можно подключать несколько кластеров к одному серверу Armada.
Использование Armada позволяет запускать распределённые вычисления, ML-задачи и batch-ворклоады в больших инфраструктурах, где стандартных возможностей Kubernetes недостаточно.
https://github.com/armadaproject/armada
#devops #девопс
Подпишись 👉@i_DevOps
🔹 Основные идеи:
- Очереди: задания распределяются через очереди с гибкими правилами приоритизации.
- Масштабируемость: поддержка тысяч узлов и миллионов заданий.
- Интеграция с Kubernetes: Armada выступает как надстройка над существующими кластерами.
- Справедливое распределение ресурсов: балансировка между пользователями и проектами.
- gRPC API: для отправки и управления заданиями.
Архитектура включает Armada server (центральный сервис с API и логикой очередей) и executor (компонент, работающий в Kubernetes-кластере и запускающий задания). Таким образом, можно подключать несколько кластеров к одному серверу Armada.
Использование Armada позволяет запускать распределённые вычисления, ML-задачи и batch-ворклоады в больших инфраструктурах, где стандартных возможностей Kubernetes недостаточно.
https://github.com/armadaproject/armada
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Рабочие процессы Арго - паттерны, проверенные на продакшене
Argo Workflows представляет собой отличную платформу для автоматизации инфраструктуры и заменил Jenkins в качестве основного инструмента для выполнения запланированных или управляемых событиями задач автоматизации.
За время работы с Argo Workflows мне приходилось убивать кластеры, ломать рабочие процессы и вообще вносить беспорядок в работу. Я также создал множество рабочих процессов, которые нуждались в рефакторинге, поскольку их стало сложно поддерживать.
Цель этой статьи - поделиться некоторыми уроками, которые я извлек, и некоторыми паттернами, которые я разработал, чтобы помочь вам избежать тех же ошибок, которые совершил я.
https://hodgkins.io/argo-workflow-proven-patterns-from-production
#devops #девопс
Подпишись 👉@i_DevOps
Argo Workflows представляет собой отличную платформу для автоматизации инфраструктуры и заменил Jenkins в качестве основного инструмента для выполнения запланированных или управляемых событиями задач автоматизации.
За время работы с Argo Workflows мне приходилось убивать кластеры, ломать рабочие процессы и вообще вносить беспорядок в работу. Я также создал множество рабочих процессов, которые нуждались в рефакторинге, поскольку их стало сложно поддерживать.
Цель этой статьи - поделиться некоторыми уроками, которые я извлек, и некоторыми паттернами, которые я разработал, чтобы помочь вам избежать тех же ошибок, которые совершил я.
https://hodgkins.io/argo-workflow-proven-patterns-from-production
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Вопросы с собеседования
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
#devops #девопс
Подпишись 👉@i_DevOps
df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?
Когда файл удален т. к. файловый дескриптор «держит» его.
Ищем файл через:
lsof -a +L1 | grep var | grep httpdПри удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.
Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
#devops #девопс
Подпишись 👉@i_DevOps
👍8
Что такое Docker? В чем отличие контейнера от образа?
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
#devops #девопс
Подпишись 👉@i_DevOps
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.
Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
Контейнер — запущенный образ приложения, который кроме нижних слоев в режиме "только чтение" содержит верхний слой в режиме "чтение-запись".
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Puppet в Avito: 15 000 серверов, CI/CD и уроки из продакшна
Привет! Меня зовут Андрей Колесников, я тимлид одной из DevOps-команд Авито. Уже 10 лет я работаю с высоконагруженными и бизнес-критичными системами. В этой статье рассказываю, как мы управляем нашей инфраструктурой с помощью Puppet, и объясняю, почему мы продолжаем его использовать.
Всё, о чём я рассказываю, — это результат работы сразу нескольких инфраструктурных команд, и я благодарен коллегам за помощь в подготовке статьи. А ещё спасибо моей команде — пока они держат инфраструктуру в порядке, я могу рассказывать об этом вам.
https://habr.com/ru/companies/avito/articles/939080/
#devops #девопс
Подпишись 👉@i_DevOps
Привет! Меня зовут Андрей Колесников, я тимлид одной из DevOps-команд Авито. Уже 10 лет я работаю с высоконагруженными и бизнес-критичными системами. В этой статье рассказываю, как мы управляем нашей инфраструктурой с помощью Puppet, и объясняю, почему мы продолжаем его использовать.
Это не рассказ о «фичах ради фич» и не реклама инструмента. Я не буду уговаривать всех срочно перейти на Puppet. Вместо этого я поделюсь нашим практическим опытом: как мы используем Puppet в Avito, какие подходы и практики применяем, как масштабируем систему и какие грабли собрали по пути.
Всё, о чём я рассказываю, — это результат работы сразу нескольких инфраструктурных команд, и я благодарен коллегам за помощь в подготовке статьи. А ещё спасибо моей команде — пока они держат инфраструктуру в порядке, я могу рассказывать об этом вам.
https://habr.com/ru/companies/avito/articles/939080/
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Автоматизируй всё с Ansible!
Ansible — это мощный инструмент, который упрощает управление конфигурацией, развертывание приложений и оркестрацию задач. Статья рассказывает о лучших практиках использования Ansible и о том, как автоматизировать повседневные задачи, экономя время и силы.
https://agralrst.medium.com/automate-everything-with-ansible-aac7eb4d5cf9
#devops #девопс
Подпишись 👉@i_DevOps
Ansible — это мощный инструмент, который упрощает управление конфигурацией, развертывание приложений и оркестрацию задач. Статья рассказывает о лучших практиках использования Ansible и о том, как автоматизировать повседневные задачи, экономя время и силы.
https://agralrst.medium.com/automate-everything-with-ansible-aac7eb4d5cf9
#devops #девопс
Подпишись 👉@i_DevOps
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🐾 Tabby
Это самостоятельный помощник по написанию кода с искусственным интеллектом, представляющий собой альтернативу GitHub Copilot с открытым исходным кодом и локальным ресурсом. Он может похвастаться несколькими ключевыми особенностями:
Самодостаточность, отсутствие необходимости в СУБД или облачном сервисе.
Интерфейс OpenAPI, легко интегрируемый с существующей инфраструктурой (например, Cloud IDE).
Поддержка графических процессоров потребительского класса.
https://github.com/TabbyML/tabby
#devops #девопс
Подпишись 👉@i_DevOps
Это самостоятельный помощник по написанию кода с искусственным интеллектом, представляющий собой альтернативу GitHub Copilot с открытым исходным кодом и локальным ресурсом. Он может похвастаться несколькими ключевыми особенностями:
Самодостаточность, отсутствие необходимости в СУБД или облачном сервисе.
Интерфейс OpenAPI, легко интегрируемый с существующей инфраструктурой (например, Cloud IDE).
Поддержка графических процессоров потребительского класса.
https://github.com/TabbyML/tabby
#devops #девопс
Подпишись 👉@i_DevOps
👍2