DevOps Portal | Linux
13.1K subscribers
936 photos
125 videos
10 files
964 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Сотрудничество, реклама: @devmangx

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте деплойменты в Kubernetes

Нашел практическое задание, которое поможет разобраться, как работают Deployment'ы — от их создания до масштабирования, обновления образов, проверки состояния Pod'ов и отката изменений.

Отлично подходит для практики реальных операций, стоящих за kubectl apply/create и kubectl rollout.

Попробуйте здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥32
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
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Паттерны проброса портов в Kubernetes

Вы находитесь внутри dev-кластера, доступ к сети ограничен, и только что задеплоенный сервис ведёт себя некорректно.

Нет ни LoadBalancer'а, ни ingress-контроллера, а открыть порт — не вариант, потому что сетевая команда либо медлит, либо отказывает.

В этом случае вас выручает kubectl port-forward.

Здесь представлена упрощённая схема для наглядного понимания.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🥱2
Совет дня по Linux

Большинство людей используют echo для вывода информации

Но в многих случаях его также можно использовать, чтобы избежать ошибок

echo позволяет развернуть подстановочные знаки и понять, что произойдёт, ещё до выполнения команды.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥135
Почему ["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
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🤯2
Удалённый доступ к Docker-демону с другой машины

Иногда может потребоваться выполнять команды Docker с отдельной машины, на которой установлен только Docker CLI, но не полный движок Docker. Например, Docker работает на вашем домашнем сервере, а вы хотите управлять им с ноутбука или рабочей машины разработчика.

Чтобы это стало возможным, вы можете открыть Docker-демон по протоколу TCP, обновив файл daemon.json на сервере

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165
Совет по Linux для DevOps-инженеров

Как получить публичный IP-адрес сервера с помощью команды?

Вы можете использовать curl и общедоступные сервисы для получения публичного IP-адреса, как показано на изображении.

Для AWS и GCP всегда используйте соответствующий сервис метаданных для получения публичного IP-адреса.

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍166
Что такое трансляция сетевых адресов (NAT)?

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🥱52
Media is too big
VIEW IN TELEGRAM
Объяснение Сетевого Взаимодействия в Kubernetes (eng)

Узнайте, как работает сетевая модель Kubernetes (K8s) с использованием Pod'ов, CNI-плагинов и Service'ов. Изучите взаимодействие между Pod'ами, IP-адресацию и сетевые политики. А также создайте свой первый Pod с нуля.

Смотреть на YouTube

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
Многие считают, что балансировщики нагрузки нужны лишь для распределения сетевого трафика.

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

Вот несколько примеров

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍8
Большинство пользователей Linux знакомы с командой 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 и т.д.

Преимущества

🔹Сохраняется история изменений файлов

🔹Предотвращается случайная перезапись важных данных

🔹Предлагается простая система версионности без необходимости использовать сложные системы контроля версий

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍105
Двухминутная настройка. Повышение производительности Kubernetes.

Добавление параметров externalTrafficPolicy: Local и sessionAffinity: ClientIP улучшает производительность за счёт снижения задержек и обеспечения привязки клиентских сессий к одному и тому же pod’у.

Внимание: это может увеличить нагрузку на отдельные узлы, но взамен повышается отклик и сохраняется сессия, что критично для пользовательского опыта в высоконагруженных приложениях.

👉 DevOps Portal
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍324🤔1
Шпаргалка по Netcat

Netcat (nc) — это мощный инструмент для работы с TCP/UDP: от диагностики до передачи файлов и обратных шеллов

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥218👍2
Основные команды kubectl для отладки в Kubernetes

kubectl 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
🧠 Как узнать ВСЁ о железе и системе в 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
👍221🔥1💊1
Вопросы для собеседования DevOps

Нашёл годный ресурс с вопросами и ответами по ключевым темам:

🔹Core DevOps Concepts
🔹K8s
🔹CI/CD
🔹Мониторинг и логгирование
🔹SRE и куча других

Из минусов — вопросов пока маловато и местами поверхностно. Но как стартовый чеклист или разминка перед интервью — пойдет

https://interview.devopscommunity.in/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🥱2
Реверс-инжиниринг Docker-образа

Если вдруг потерялся Dockerfile от образа, который у тебя в проде, или просто хочется копнуть глубже и разобраться, как собирался образ под капотом — есть пара удобных тулзов, которые помогут вытянуть исходники и заодно прокачать понимание процесса билда.

Неудивительно, что сами эти утилиты — это тоже Docker-образы. Так что без лишних движений — запускай одну из команд ниже, и получишь восстановленную версию Dockerfile:

sudo docker run -v /var/run/docker.sock:/var/run/docker.sock --rm dduvnjak/dockerfile-from-image $IMAGE_ID
sudo docker run -v /var/run/docker.sock:/var/run/docker.sock --rm laniksj/dfimage $IMAGE_ID
sudo docker run -v /var/run/docker.sock:/var/run/docker.sock --rm mrhavens/dedockify $IMAGE_ID


Где $IMAGE_ID — это ID нужного тебе образа, Dockerfile которого вы хотите восстановить

После выполнения получишь дамп с примерным содержимым Dockerfile. Все три утилиты (dockerfile-from-image, dfimage, dedockify) работают схожим образом: они анализируют слои, которые появились во время сборки. Каждая инструкция из Dockerfile потенциально создаёт слой (но не всегда). Единственное отличие в том, что первая написана на Ruby, а вторые две на Python.

Чтобы не возиться каждый раз с полной командой — можно завести алиас:
alias dedockify="sudo docker run -v /var/run/docker.sock:/var/run/docker.sock --rm mrhavens/dedockify"


И потом просто запускать:
dedockify $IMAGE_NAME


Ещё есть полезный инструмент — dive. Он позволяет посмотреть, что именно лежит в слоях Docker-образа. Можно запускать как через контейнер, так и через бинарь. Удобно, если нужно отладить, что именно пошло не так в сборке.

alias dive="sudo docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"


Пример:
dive nginx:latest


Если хочешь прикрутить его в CI/CD пайплайн — просто добавь:
CI=true dive $IMAGE


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍216
Принес годноту – Labex. Более 1000 интерактивных лабораторий и туториалов по DevOps, Linux, инфобезу, Python и многому другому

Всё работает прямо через браузер — никакой установки, просто открыл и погнал

Забираем абсолютно бесплатно здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍8🌭1