Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Связь: @devmangx № 5581790357
🧠 Как узнать ВСЁ о железе и системе в Linux за 5 минут
Привет, линукс-мастер! 🐧
Хочешь быстро получить полную информацию о процессоре, памяти, дисках, устройствах USB и прочем железе в системе? Лови топ команд для диагностики без лишних движений:
⚙️ Системная информация
- uname -a
— версия ядра и архитектура системы.
🖥️ Информация о железе
- lspci
— список всех устройств на шинах PCI.
- lsusb
— список USB-контроллеров и устройств.
- lshw
— детальное описание железа.
- hwinfo
— альтернатива lshw с расширенными данными.
- dmidecode
— чтение таблицы DMI/SMBIOS (информация о BIOS, материнке, памяти).
🧠 Процессор и память
- lscpu
— характеристики процессора.
- free -h
— текущая загрузка ОЗУ.
- cat /proc/cpuinfo
— подробности о CPU.
🛠️ Диски и файловые системы
- lsblk
— список всех блочных устройств.
- blkid
— метки разделов и UUID.
- fdisk -l
, gdisk -l
, parted -l
— разметка дисков.
- df -h
— свободное место на дисках.
- mount
— список смонтированных разделов.
🔥 Дополнительно
- dmesg
— лог загрузки ядра и сообщения устройств.
- hdparm -I /dev/sdX
— характеристики жестких дисков.
- inxi -Fxz
— сводный отчёт о системе и железе.
🛡️ Все команды работают в терминале, без GUI. Удобно для серверов, VPS и быстрой диагностики локальных машин.
📩 Завтра: Вопрос №25 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Превращаем namei в супер-ls с опцией -l!
🧠 - Prometheus: Все Основы Мониторинга — Почему Это Важно
🧠 - Раскрой тайны своего файрвола: просмотр правил iptables!
#Linux_Mastery @LinuxSkill #Linux #Sysadmin #Hardware #Terminal #Diagnostics
Основные команды kubectl
для отладки в Kuberneteskubectl get events --field-selector type=Warning --all-namespaces
Выводит предупреждения по всему кластеру, например, ошибки при выделении IP-адресов подам.kubectl get nodes -o wide --label-columns http://topology.kubernetes.io/zone
Проверяет статус узлов и проблемы, связанные с конкретными зонами.kubectl blame pod $POD
Отслеживает изменения манифеста пода и их источники.kubectl lineage pod $POD
Показывает зависимости ресурса и его создателей.kubectl get endpointslices -o wide
Сопоставляет сервисы с IP-адресами подов; если список пуст — проверь готовность подов и метки.
👉 DevOps Portal
Шпаргалка по Netcat
Netcat (nc) — это мощный инструмент для работы с TCP/UDP: от диагностики до передачи файлов и обратных шеллов
👉 DevOps Portal
Docker vs Podman – Знай различия
🔹 Docker = требует демон
🔹 Podman = без демона и без root-доступа
Оба запускают контейнеры, но Podman обходится без фонового сервиса и хорошо интегрируется с systemd.
Те же команды, больше безопасности.
Заметка: Docker тоже может запускать контейнеры без root-доступа, но для этого требуется дополнительная настройка и конфигурация.
👉 DevOps Portal
Большинство пользователей Linux знакомы с командой cp
для копирования файлов. Однако немногие знают о её встроенной поддержке версионности.
Эта функция может быть особенно полезна для системных администраторов и разработчиков, которым необходимо поддерживать несколько версий конфигурационных файлов или исходного кода.
Понимание версионности в cp
Команда cp
предлагает два ключевых параметра для поддержки версионности:
1. --backup
: создаёт резервную копию файла назначения перед его перезаписью.
2. --suffix
: задаёт пользовательский суффикс для резервной копии.
Простое резервное копирование
Чтобы создать простую резервную копию:
$ cp --backup=numbered /путь/к/исходному/файлу /путь/к/папке/назначения/
~
) и увеличивающимся номером (например, файл.~1~
, файл.~2~
и т.д.).$ cp --backup=numbered --suffix=.bak /путь/к/исходному/файлу /путь/к/папке/назначения/
.bak
и увеличивающимся номером (например, файл.bak.1
, файл.bak.2
и т.д.)./etc/ssh/sshd_config
) для управления правилами доступа. Вот как можно вести версионированные резервные копии:$ cp --backup=numbered /etc/ssh/sshd_config /data/backup/
sshd_config.~1~
, sshd_config.~2~
и т.д.$ cp --backup=numbered --suffix=.bak /etc/ssh/sshd_config /data/backup/
sshd_config.bak.1
, sshd_config.bak.2
и т.д.Объяснение Сетевого Взаимодействия в Kubernetes (eng)
Узнайте, как работает сетевая модель Kubernetes (K8s) с использованием Pod'ов, CNI-плагинов и Service'ов. Изучите взаимодействие между Pod'ами, IP-адресацию и сетевые политики. А также создайте свой первый Pod с нуля.
Смотреть на YouTube
👉 DevOps Portal
Совет по Linux для DevOps-инженеров
Как получить публичный IP-адрес сервера с помощью команды?
Вы можете использовать curl
и общедоступные сервисы для получения публичного IP-адреса, как показано на изображении.
Для AWS и GCP всегда используйте соответствующий сервис метаданных для получения публичного IP-адреса.
Примечание: пожалуйста, не используйте общедоступные сервисы в реальных проектах или в продуктивной среде. Всегда консультируйтесь с командой по информационной безопасности по поводу возможных вариантов.
👉 DevOps Portal
Почему ["npm", "start"]
— плохой выбор для инструкции CMD в Dockerfile 👇
Несмотря на то, что эта команда используется почти в каждом Dockerfile, включая некоторые «рекомендованные» Dockerfile, сгенерированные такими инструментами, как create-react-app
, использование ["npm", "start"]
в CMD приводит к появлению лишней оболочки в дереве процессов контейнера. Это, в частности, может вызывать проблемы с распространением сигналов (signal propagation), что, в свою очередь, нарушает корректное завершение работы контейнеризированного приложения.
Я нашел практическое задание, иллюстрирующее эту проблему:
https://labs.iximiuz.com/challenges/graceful-termination-for-nodejs-container
Попробуйте его пройти, если хотите быстро научиться распознавать или избегать эту скрытую проблему в продакшене
👉 DevOps Portal
Паттерны проброса портов в Kubernetes
Вы находитесь внутри dev-кластера, доступ к сети ограничен, и только что задеплоенный сервис ведёт себя некорректно.
Нет ни LoadBalancer'а, ни ingress-контроллера, а открыть порт — не вариант, потому что сетевая команда либо медлит, либо отказывает.
В этом случае вас выручает kubectl port-forward
.
Здесь представлена упрощённая схема для наглядного понимания.
👉 DevOps Portal
Освойте деплойменты в Kubernetes
Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы — от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.
Отлично подходит для практики реальных операций, стоящих за kubectl apply/create
и kubectl
rollout
.
Попробуйте здесь
👉 DevOps Portal
Утилита для мониторинга передачи данных
Недавно я занимался миграцией веб-сайта, в рамках которой нужно было вручную перенести данные из SQL-файла на ноутбуке в новую базу данных MySQL (RDS). Размер файла составлял примерно 450 МБ.
Мне нужно было отслеживать прогресс импорта, и я узнал об утилите Pipe Viewer (pv).
Pipe Viewer, или просто pv, — это инструмент командной строки, позволяющий отслеживать прогресс передачи данных.
Вот команду, которую я использовал:
pv backup.sql | mysql -h rds.amazonaws.com -u bibinwilson -p my_db
80.0MiB 0:08:36 [ 158KiB/s]
[==================================>] 100%
Многие DevOps-инженеры не до конца понимают структуру директории Ansible и то, как всё связано между собой.
Вот шпаргалка, которая поможет лучше разобраться
👉 DevOps Portal
Хакатон «ВНЕДРЕЙД» от Orion soft собирает 300 сильнейших представителей ИТ-касты, готовых штурмовать инфру Т‑Банка, Авито, Lamoda, CDEK и Магнита.
48 часов кода, драйва и никаких ограничений. После 22:00 карета превращается в тыкву, а внедрейд во внедрейв: темные окна, светлые головы и вечно горячий роутер.
Когда? 7-8 июня
Где? Москва, «Суперметалл»
Приз — экспедиция на Эльбрус для всей команды
Присоединяйся к штурму бигтеха: [Подать заявку]
Быстрый совет по Linux
Хватит управлять SSH-подключениями вручную!
Используй блоки Host
в ~/.ssh/config
.
С конфигом, как ниже, достаточно просто:
$ ssh dev-server
Основы сетевых пространств имён в Linux
Прежде чем переходить к Docker и Kubernetes, стоит разобраться в базовых технологиях:
🔹Создание сетевого пространства имён в Linux: https://labs.iximiuz.com/challenges/linux-network-namespace
🔹Соединение двух сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-two-network-namespaces
🔹Соединение нескольких сетевых пространств имён: https://labs.iximiuz.com/challenges/connect-multiple-network-namespaces
👉 DevOps Portal
Изучаете, как вручную размещать Pod'ы в Kubernetes?
На платформе iximiuz Labs доступно задание, которое охватывает node selectors, правила affinity и taints.
Полезно, когда вам нужно контролировать размещение Pod'ов — например, для запуска рабочих нагрузок на узлах с GPU, изоляции сред или распределения трафика.
Если вы хотите освоить эти техники, это задание — отличный способ попрактиковаться.
Попробуйте здесь:
https://labs.iximiuz.com/challenges/kubernetes-pod-advanced-scheduling-3b631fdf
👉 DevOps Portal
🚀 Почему пользователи платят $30 за простой конвертер картинок? Давайте разберемся.
Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат.
Как он это сделал:
1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG».
2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик.
3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма.
Посты про конвертер (ч.1, ч.2)
Что из этого получилось:
— Доход $500 в месяц с тенденцией роста.
— Более $10K заработано на конвертере.
— $0 на рекламу, всего $40 в месяц на сервер.
Выводы:
— Люди платят за удобство, даже если есть бесплатные аналоги.
— Продукт функционирует автоматически с минимальной поддержкой.
— Быстрая и экономичная проверка идеи может быть успешной.
Результаты из комьюнити билдеров:
— Более 400 запусков по этой методике.
— Некоторые продукты уже набрали от 50К до 100К+ пользователей.
Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах.
Амбициозные проекты, удалёнка и рост в сфере DevOps — звучит как работа мечты! Отправляйте резюме до 8 июня и присоединяйтесь к команде YADRO! 🧑💻
Как получить оффер за 3 дня? Подробности на карточках выше — листайте!
Оставляйте заявку — мы ждём именно вас!
Двухминутная настройка. Повышение производительности Kubernetes.
Добавление параметров externalTrafficPolicy: Local
и sessionAffinity: ClientIP
улучшает производительность за счёт снижения задержек и обеспечения привязки клиентских сессий к одному и тому же pod’у.
Внимание: это может увеличить нагрузку на отдельные узлы, но взамен повышается отклик и сохраняется сессия, что критично для пользовательского опыта в высоконагруженных приложениях.
👉 DevOps Portal
Многие считают, что балансировщики нагрузки нужны лишь для распределения сетевого трафика.
Однако в современных облачных архитектурах существует множество сценариев использования, которые доказывают, что их возможности гораздо шире.
Вот несколько примеров
👉 DevOps Portal
Что такое трансляция сетевых адресов (NAT)?
👉 DevOps Portal
Удалённый доступ к Docker-демону с другой машины
Иногда может потребоваться выполнять команды Docker с отдельной машины, на которой установлен только Docker CLI, но не полный движок Docker. Например, Docker работает на вашем домашнем сервере, а вы хотите управлять им с ноутбука или рабочей машины разработчика.
Чтобы это стало возможным, вы можете открыть Docker-демон по протоколу TCP, обновив файл daemon.json
на сервере
👉 DevOps Portal
Совет дня по Linux
Большинство людей используют echo
для вывода информации
Но в многих случаях его также можно использовать, чтобы избежать ошибок echo
позволяет развернуть подстановочные знаки и понять, что произойдёт, ещё до выполнения команды.
👉 DevOps Portal
Kubernetes 1.33 (кодовое имя Octarine) был выпущен чуть более двух недель назад
В релиз вошли 64 улучшения (!!), поэтому полезно иметь краткий и наглядный обзор.
Визуальный разбор Kubernetes 1.33:
https://dev.to/aurelievache/understanding-kubernetes-part-55-kubernetes-133-changelog-1k5l
Подробности о релизе доступны в официальных примечаниях к релизу Kubernetes 1.33 и релиз-нотах GKE 1.33.
👉 DevOps Portal
Если вы инженер DevOps и ещё не слышали о метриках DORA — пора это исправить.
DORA расшифровывается как DevOps Research and Assessment (исследование и оценка практик DevOps).
Эта команда стоит за отчётом State of DevOps — ключевым источником информации о том, что действительно отличает высокоэффективные инженерные команды.
Но как метрики DORA применяются в реальных командах?
Вот как их можно отслеживать и даже создавать дашборды для визуализации:
🔹Частота деплоев (Deployment Frequency):
Отслеживайте количество деплоев через вашу CI/CD-платформу (GitHub Actions, GitLab, Jenkins и т.д.). Отправляйте данные о деплоях в систему метрик, такую как Prometheus, Datadog или даже Google Sheets через webhook.
🔹Время выполнения изменений (Lead Time for Changes):
Используйте временные метки Git-коммитов и событий деплоя в прод. Интегрируйте инструменты вроде Jira с GitHub или GitLab. Данные можно визуализировать в Grafana или Looker.
🔹Процент неудачных изменений (Change Failure Rate):
Интегрируйте инструменты управления инцидентами (PagerDuty, Opsgenie и т.д.) с логами деплоя. Коррелируйте инциденты с последними релизами. Это можно отслеживать в Grafana, Datadog или даже в Excel (для небольших команд).
🔹Время восстановления сервиса (Time to Restore Service):
Используйте системы алёртов, такие как Prometheus Alertmanager, Splunk или New Relic. Измеряйте время от срабатывания алёрта до полного устранения инцидента. Визуализируйте тренды на дашборде для контроля MTTR (среднего времени восстановления).
🔹Надёжность (Reliability):
Определите SLO (например, аптайм 99.9%) и отслеживайте их с помощью мониторинга SLI/SLO в Prometheus, Datadog или Nobl9. Визуализируйте бюджеты ошибок и аптайм во времени.
Инструменты вроде Grafana, Looker, Power BI или Tableau отлично подходят для создания кастомных дашбордов.
Не обязательно внедрять всё сразу.
Выберите одну метрику. Постройте простой дашборд. И постепенно улучшайте подход.
👉 DevOps Portal
Когда-нибудь хотелось просто «запрыгнуть» в работающий Docker-контейнер?
Именно для этого и существует docker exec
Нужно отладить что-то или посмотреть логи?exec
позволяет запускать любые команды внутри контейнера без его перезапуска.
На фото краткая шпаргалка, которая точно пригодится
👉 DevOps Portal
Не позволяйте одному контейнеру съедать всю память сервера
Устанавливайте ограничения по памяти в Docker с помощью флага --memory
или в файле Compose.
👉 DevOps Portal
Недавно Docker добавил новую функциональность под названием Docker Bake, которая предназначена для управления сложными сборками
Если у вас есть разные сборки для различных стадий CI, таких как lint, test и другие, этот инструмент поможет вам управлять сборками в более декларативной и упрощённой форме.
Также он подходит для проектов, использующих monorepo-архитектуру, но с разнообразными сборками.
Отлично совместим с docker-compose.
Docker Bake теперь официально доступен в Docker Desktop 4.38!
Подробнее в блоге Docker: https://www.docker.com/blog/ga-launch-docker-bake/
👉 DevOps Portal
Ошибка в безопасности Docker, которую упускают даже сеньоры:
Не добавлять файл .dockerignore
с исключением .env
— огромный риск.
Если не исключить .env
из процесса сборки Docker, переменные окружения, включая API-ключи, учетные данные к БД и другие секреты, попадают прямо в образ.
Совет: всегда добавляйте .env
и другие чувствительные файлы в .dockerignore
.
👉 DevOps Portal
Быстрый совет по Docker Compose
Обновление версии образа у запущенного контейнера
Да, это возможно в Docker и практически без простоев.
В блоке services
необходимо определить параметры deploy
(как на изображении выше). Важным параметром здесь является order
. Он указывает Docker сначала создать и запустить новый контейнер с обновлённой версией образа. После запуска нового контейнера трафик будет перенаправлен на него, а старый контейнер будет остановлен и удалён.
Эта конфигурация лучше всего работает в сочетании с опцией replicas
, чтобы развернуть несколько экземпляров одного и того же контейнера и обеспечить высокую доступность.
Примечание: наилучший результат достигается при использовании семантического версионирования образов.
👉 DevOps Portal