Когда-нибудь хотелось просто «запрыгнуть» в работающий Docker-контейнер?
Именно для этого и существует
Нужно отладить что-то или посмотреть логи?
На фото краткая шпаргалка, которая точно пригодится
👉 DevOps Portal
Именно для этого и существует
docker execНужно отладить что-то или посмотреть логи?
exec позволяет запускать любые команды внутри контейнера без его перезапуска.На фото краткая шпаргалка, которая точно пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6❤2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Утилита для мониторинга передачи данных
Недавно я занимался миграцией веб-сайта, в рамках которой нужно было вручную перенести данные из SQL-файла на ноутбуке в новую базу данных MySQL (RDS). Размер файла составлял примерно 450 МБ.
Мне нужно было отслеживать прогресс импорта, и я узнал об утилите Pipe Viewer (pv).
Pipe Viewer, или просто pv, — это инструмент командной строки, позволяющий отслеживать прогресс передачи данных.
Вот команду, которую я использовал:
Пример вывода:
Утилиту можно встроить в любой стандартный конвейер (pipeline) между двумя процессами, чтобы наглядно отображать скорость передачи данных, затраченное время, степень завершённости и примерное оставшееся время до окончания операции.
Возможности:
🔹 Визуальный индикатор прогресса
🔹 Оценка оставшегося времени
🔹 Задержка
Утилиту необходимо установить через соответствующий пакетный менеджер.
Инструмент: https://ivarch.com/programs/pv.shtml
👉 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%
Утилиту можно встроить в любой стандартный конвейер (pipeline) между двумя процессами, чтобы наглядно отображать скорость передачи данных, затраченное время, степень завершённости и примерное оставшееся время до окончания операции.
Возможности:
Утилиту необходимо установить через соответствующий пакетный менеджер.
Инструмент: https://ivarch.com/programs/pv.shtml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Если вы инженер 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
DORA расшифровывается как DevOps Research and Assessment (исследование и оценка практик DevOps).
Эта команда стоит за отчётом State of DevOps — ключевым источником информации о том, что действительно отличает высокоэффективные инженерные команды.
Но как метрики DORA применяются в реальных командах?
Вот как их можно отслеживать и даже создавать дашборды для визуализации:
Отслеживайте количество деплоев через вашу CI/CD-платформу (GitHub Actions, GitLab, Jenkins и т.д.). Отправляйте данные о деплоях в систему метрик, такую как Prometheus, Datadog или даже Google Sheets через webhook.
Используйте временные метки Git-коммитов и событий деплоя в прод. Интегрируйте инструменты вроде Jira с GitHub или GitLab. Данные можно визуализировать в Grafana или Looker.
Интегрируйте инструменты управления инцидентами (PagerDuty, Opsgenie и т.д.) с логами деплоя. Коррелируйте инциденты с последними релизами. Это можно отслеживать в Grafana, Datadog или даже в Excel (для небольших команд).
Используйте системы алёртов, такие как Prometheus Alertmanager, Splunk или New Relic. Измеряйте время от срабатывания алёрта до полного устранения инцидента. Визуализируйте тренды на дашборде для контроля MTTR (среднего времени восстановления).
Определите SLO (например, аптайм 99.9%) и отслеживайте их с помощью мониторинга SLI/SLO в Prometheus, Datadog или Nobl9. Визуализируйте бюджеты ошибок и аптайм во времени.
Инструменты вроде Grafana, Looker, Power BI или Tableau отлично подходят для создания кастомных дашбордов.
Не обязательно внедрять всё сразу.
Выберите одну метрику. Постройте простой дашборд. И постепенно улучшайте подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте деплойменты в Kubernetes
Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы — от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.
Отлично подходит для практики реальных операций, стоящих за
Попробуйте здесь
👉 DevOps Portal
Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы — от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.
Отлично подходит для практики реальных операций, стоящих за
kubectl apply/create и kubectl rollout.Попробуйте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3❤2
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
В релиз вошли 64 улучшения (!!), поэтому полезно иметь краткий и наглядный обзор.
Визуальный разбор Kubernetes 1.33:
https://dev.to/aurelievache/understanding-kubernetes-part-55-kubernetes-133-changelog-1k5l
Подробности о релизе доступны в официальных примечаниях к релизу Kubernetes 1.33 и релиз-нотах GKE 1.33.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Паттерны проброса портов в Kubernetes
Вы находитесь внутри dev-кластера, доступ к сети ограничен, и только что задеплоенный сервис ведёт себя некорректно.
Нет ни LoadBalancer'а, ни ingress-контроллера, а открыть порт — не вариант, потому что сетевая команда либо медлит, либо отказывает.
В этом случае вас выручает
Здесь представлена упрощённая схема для наглядного понимания.
👉 DevOps Portal
Вы находитесь внутри dev-кластера, доступ к сети ограничен, и только что задеплоенный сервис ведёт себя некорректно.
Нет ни LoadBalancer'а, ни ingress-контроллера, а открыть порт — не вариант, потому что сетевая команда либо медлит, либо отказывает.
В этом случае вас выручает
kubectl port-forward.Здесь представлена упрощённая схема для наглядного понимания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🥱2
Совет дня по Linux
Большинство людей используют
Но в многих случаях его также можно использовать, чтобы избежать ошибок
👉 DevOps Portal
Большинство людей используют
echo для вывода информацииНо в многих случаях его также можно использовать, чтобы избежать ошибок
echo позволяет развернуть подстановочные знаки и понять, что произойдёт, ещё до выполнения команды.Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥13❤5
Почему
Несмотря на то, что эта команда используется почти в каждом Dockerfile, включая некоторые «рекомендованные» Dockerfile, сгенерированные такими инструментами, как
Я нашел практическое задание, иллюстрирующее эту проблему:
https://labs.iximiuz.com/challenges/graceful-termination-for-nodejs-container
Попробуйте его пройти, если хотите быстро научиться распознавать или избегать эту скрытую проблему в продакшене
👉 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
Попробуйте его пройти, если хотите быстро научиться распознавать или избегать эту скрытую проблему в продакшене
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🤯2
Удалённый доступ к Docker-демону с другой машины
Иногда может потребоваться выполнять команды Docker с отдельной машины, на которой установлен только Docker CLI, но не полный движок Docker. Например, Docker работает на вашем домашнем сервере, а вы хотите управлять им с ноутбука или рабочей машины разработчика.
Чтобы это стало возможным, вы можете открыть Docker-демон по протоколу TCP, обновив файл
👉 DevOps Portal
Иногда может потребоваться выполнять команды Docker с отдельной машины, на которой установлен только Docker CLI, но не полный движок Docker. Например, Docker работает на вашем домашнем сервере, а вы хотите управлять им с ноутбука или рабочей машины разработчика.
Чтобы это стало возможным, вы можете открыть Docker-демон по протоколу TCP, обновив файл
daemon.json на сервереPlease open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5
Совет по Linux для DevOps-инженеров
Как получить публичный IP-адрес сервера с помощью команды?
Вы можете использовать
Для AWS и GCP всегда используйте соответствующий сервис метаданных для получения публичного IP-адреса.
Примечание: пожалуйста, не используйте общедоступные сервисы в реальных проектах или в продуктивной среде. Всегда консультируйтесь с командой по информационной безопасности по поводу возможных вариантов.
👉 DevOps Portal
Как получить публичный IP-адрес сервера с помощью команды?
Вы можете использовать
curl и общедоступные сервисы для получения публичного IP-адреса, как показано на изображении.Для AWS и GCP всегда используйте соответствующий сервис метаданных для получения публичного IP-адреса.
Примечание: пожалуйста, не используйте общедоступные сервисы в реальных проектах или в продуктивной среде. Всегда консультируйтесь с командой по информационной безопасности по поводу возможных вариантов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6
Media is too big
VIEW IN TELEGRAM
Объяснение Сетевого Взаимодействия в Kubernetes (eng)
Узнайте, как работает сетевая модель Kubernetes (K8s) с использованием Pod'ов, CNI-плагинов и Service'ов. Изучите взаимодействие между Pod'ами, IP-адресацию и сетевые политики. А также создайте свой первый Pod с нуля.
Смотреть на YouTube
👉 DevOps Portal
Узнайте, как работает сетевая модель Kubernetes (K8s) с использованием Pod'ов, CNI-плагинов и Service'ов. Изучите взаимодействие между Pod'ами, IP-адресацию и сетевые политики. А также создайте свой первый Pod с нуля.
Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Многие считают, что балансировщики нагрузки нужны лишь для распределения сетевого трафика.
Однако в современных облачных архитектурах существует множество сценариев использования, которые доказывают, что их возможности гораздо шире.
Вот несколько примеров
👉 DevOps Portal
Однако в современных облачных архитектурах существует множество сценариев использования, которые доказывают, что их возможности гораздо шире.
Вот несколько примеров
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍8
Большинство пользователей Linux знакомы с командой
Эта функция может быть особенно полезна для системных администраторов и разработчиков, которым необходимо поддерживать несколько версий конфигурационных файлов или исходного кода.
Понимание версионности в
Команда
1.
2.
Простое резервное копирование
Чтобы создать простую резервную копию:
Эта команда создаёт резервную копию с суффиксом по умолчанию (
Резервная копия с пользовательским суффиксом
Для более наглядных резервных копий:
Это создаёт резервные копии с суффиксом
Практический пример: резервное копирование конфигурации SSH
Предположим, вы часто обновляете файл конфигурации SSH (
1. Создание резервной копии с нумерацией:
Это создаёт файлы вида
2. Создание резервной копии с пользовательским суффиксом:
Это создаёт файлы вида
Преимущества
🔹 Сохраняется история изменений файлов
🔹 Предотвращается случайная перезапись важных данных
🔹 Предлагается простая система версионности без необходимости использовать сложные системы контроля версий
👉 DevOps Portal
cp для копирования файлов. Однако немногие знают о её встроенной поддержке версионности.Эта функция может быть особенно полезна для системных администраторов и разработчиков, которым необходимо поддерживать несколько версий конфигурационных файлов или исходного кода.
Понимание версионности в
cpКоманда
cp предлагает два ключевых параметра для поддержки версионности:1.
--backup: создаёт резервную копию файла назначения перед его перезаписью.2.
--suffix: задаёт пользовательский суффикс для резервной копии.Простое резервное копирование
Чтобы создать простую резервную копию:
$ cp --backup=numbered /путь/к/исходному/файлу /путь/к/папке/назначения/
Эта команда создаёт резервную копию с суффиксом по умолчанию (
~) и увеличивающимся номером (например, файл.~1~, файл.~2~ и т.д.).Резервная копия с пользовательским суффиксом
Для более наглядных резервных копий:
$ cp --backup=numbered --suffix=.bak /путь/к/исходному/файлу /путь/к/папке/назначения/
Это создаёт резервные копии с суффиксом
.bak и увеличивающимся номером (например, файл.bak.1, файл.bak.2 и т.д.).Практический пример: резервное копирование конфигурации SSH
Предположим, вы часто обновляете файл конфигурации SSH (
/etc/ssh/sshd_config) для управления правилами доступа. Вот как можно вести версионированные резервные копии:1. Создание резервной копии с нумерацией:
$ cp --backup=numbered /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.~1~, sshd_config.~2~ и т.д.2. Создание резервной копии с пользовательским суффиксом:
$ cp --backup=numbered --suffix=.bak /etc/ssh/sshd_config /data/backup/
Это создаёт файлы вида
sshd_config.bak.1, sshd_config.bak.2 и т.д.Преимущества
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍10❤5
Двухминутная настройка. Повышение производительности Kubernetes.
Добавление параметров
Внимание: это может увеличить нагрузку на отдельные узлы, но взамен повышается отклик и сохраняется сессия, что критично для пользовательского опыта в высоконагруженных приложениях.
👉 DevOps Portal
Добавление параметров
externalTrafficPolicy: Local и sessionAffinity: ClientIP улучшает производительность за счёт снижения задержек и обеспечения привязки клиентских сессий к одному и тому же pod’у.Внимание: это может увеличить нагрузку на отдельные узлы, но взамен повышается отклик и сохраняется сессия, что критично для пользовательского опыта в высоконагруженных приложениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍8🤔1
Docker vs Podman – Знай различия
🔹 Docker = требует демон
🔹 Podman = без демона и без root-доступа
Оба запускают контейнеры, но Podman обходится без фонового сервиса и хорошо интегрируется с systemd.
Те же команды, больше безопасности.
Заметка: Docker тоже может запускать контейнеры без root-доступа, но для этого требуется дополнительная настройка и конфигурация.
👉 DevOps Portal
Оба запускают контейнеры, но Podman обходится без фонового сервиса и хорошо интегрируется с systemd.
Те же команды, больше безопасности.
Заметка: Docker тоже может запускать контейнеры без root-доступа, но для этого требуется дополнительная настройка и конфигурация.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤4🤔1
Шпаргалка по Netcat
Netcat (nc) — это мощный инструмент для работы с TCP/UDP: от диагностики до передачи файлов и обратных шеллов
👉 DevOps Portal
Netcat (nc) — это мощный инструмент для работы с TCP/UDP: от диагностики до передачи файлов и обратных шеллов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤8👍2
Основные команды
Выводит предупреждения по всему кластеру, например, ошибки при выделении IP-адресов подам.
Проверяет статус узлов и проблемы, связанные с конкретными зонами.
Отслеживает изменения манифеста пода и их источники.
Показывает зависимости ресурса и его создателей.
Сопоставляет сервисы с IP-адресами подов; если список пуст — проверь готовность подов и метки.
👉 DevOps Portal
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-адресами подов; если список пуст — проверь готовность подов и метки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Изучаете, как вручную размещать Pod'ы в Kubernetes?
На платформе iximiuz Labs доступно задание, которое охватывает node selectors, правила affinity и taints.
Полезно, когда вам нужно контролировать размещение Pod'ов — например, для запуска рабочих нагрузок на узлах с GPU, изоляции сред или распределения трафика.
Если вы хотите освоить эти техники, это задание — отличный способ попрактиковаться.
Попробуйте здесь:
https://labs.iximiuz.com/challenges/kubernetes-pod-advanced-scheduling-3b631fdf
👉 DevOps Portal
На платформе iximiuz Labs доступно задание, которое охватывает node selectors, правила affinity и taints.
Полезно, когда вам нужно контролировать размещение Pod'ов — например, для запуска рабочих нагрузок на узлах с GPU, изоляции сред или распределения трафика.
Если вы хотите освоить эти техники, это задание — отличный способ попрактиковаться.
Попробуйте здесь:
https://labs.iximiuz.com/challenges/kubernetes-pod-advanced-scheduling-3b631fdf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
Forwarded from LinuxSkill - Сводки с прода и Шпаргалки
🧠 Как узнать ВСЁ о железе и системе в Linux за 5 минут
Привет, линукс-мастер! 🐧
Хочешь быстро получить полную информацию о процессоре, памяти, дисках, устройствах USB и прочем железе в системе? Лови топ команд для диагностики без лишних движений:
⚙️ Системная информация
-
🖥️ Информация о железе
-
-
-
-
-
🧠 Процессор и память
-
-
-
🛠️ Диски и файловые системы
-
-
-
-
-
🔥 Дополнительно
-
-
-
🛡️ Все команды работают в терминале, без GUI. Удобно для серверов, VPS и быстрой диагностики локальных машин.
📩 Завтра: Вопрос №25 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Превращаем namei в супер-ls с опцией -l!
🧠 - Prometheus: Все Основы Мониторинга — Почему Это Важно
🧠 - Раскрой тайны своего файрвола: просмотр правил iptables!
#Linux_Mastery @LinuxSkill #Linux #Sysadmin #Hardware #Terminal #Diagnostics
Привет, линукс-мастер! 🐧
Хочешь быстро получить полную информацию о процессоре, памяти, дисках, устройствах 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
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🚀 Превращаем namei в супер-ls с опцией -l!
Эй, гуру командной строки! Хочешь получить всю мощь ls в одной команде namei? Знакомься с опцией -l!
Вот как это выглядит:
namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Результат тебя удивит:…
Эй, гуру командной строки! Хочешь получить всю мощь ls в одной команде namei? Знакомься с опцией -l!
Вот как это выглядит:
namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png
Результат тебя удивит:…
👍22❤1🔥1💊1