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

Связь: @devmangx

РКН: https://clck.ru/3P8kFH
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
В чём разница между этими двумя DNS-запросами?

На вид они похожи, но на самом деле показывают совершенно разные вещи.

В первом случае:

nslookup http://academy.networkchuck.com

Ты обращаешься к своему дефолтному DNS-резолверу (роутер или DNS от провайдера).
Рекурсивный lookup — он пройдёт по всей цепочке CNAME до финального IP.
Non-authoritative — ответ может быть из кэша и потенциально устаревшим.

Во втором случае:

nslookup http://academy.networkchuck.com http://ns.cloudflare.com

Ты напрямую спрашиваешь авторитативный DNS-сервер.
Ответ приходит прямо из первоисточника.
Он покажет только то, что знает сам сервер — lookup остановится на первом CNAME.

И что же лучше? Зависит от задачи.

- Используй дефолтный резолвер, если тебе просто нужен конечный IP как можно быстрее.
- Обращайся к авторитативному серверу, если нужно проверить, кто чем реально управляет.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156🔥5
Основы сетей - Проброс портов

Древний трюк, который может помочь сделать сервис доступным на другом порту без рестарта, либо подключиться к базе данных внутри приватного VPC.

Практика:

🔸socat: https://labs.iximiuz.com/challenges/port-forwarding-using-socat
🔸netcat: https://labs.iximiuz.com/challenges/port-forwarding-using-netcat
🔸без прокси: https://labs.iximiuz.com/challenges/port-forwarding-without-proxy

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥4
Как HTTP(S)-порты пробрасываются из VM, у которых есть только приватные IP-адреса

- У каждого bare-metal хоста есть только один публичный IP-адрес

- DNS-запись *.node-xyz.iximiuz.com и wildcard-сертификат Let’s Encrypt указывают на этот IP

- Каждый раз, когда наружу пробрасывается порт VM, генерируется новый случайный поддомен

- Этот рандомный поддомен не существует за пределами конкретного хоста, он известен только соответствующему bare-metal серверу

- Все запросы к этому поддомену приходят на единственный публичный IP хоста, где слушает ingress-прокси (Envoy)

-Интерфейс VM виден только внутри её «обёртки» — Docker-контейнера (для дополнительной изоляции), поэтому Envoy не может достучаться до VM напрямую

- Вместо этого Envoy прокидывает запросы к поддомену в локальный UNIX-сокет, смонтированный в контейнер-обёртку VM

- Этот UNIX-сокет открыт специальным процессом-forwarder’ом (крошечный Go-сервис), который работает внутри контейнера-обёртки

- Forwarder делает io.Copy(UNIX socket, VM's private IP:port)

Профит! Десятки полностью изолированных VM на одном bare-metal хосте, и у каждой свой публичный URL

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
Если вы хотите избавиться от сотен уязвимостей (CVE) в своих контейнерных образах, первым шагом будет понять, откуда они берутся

Типичные источники:

- «Толстый» базовый образ

- Забытые инструменты сборки

- Устаревшие зависимости

Простое решение? Многоэтапная сборка с более свежим и лёгким базовым образом.

Пример анализа базового образа: Более глубокий взгляд на Docker-образы Node.js: «Помогите, в моём Node-образе есть Python!»

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💡 Быстрый совет по Linux 🐧

Найдите недавно изменённые файлы за последние 5 минут:

find . -type f -mmin -5


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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍137
Совет по Docker

Вот как проанализировать, что раздувает образ

Как вы знаете, любой Docker-образ состоит из слоёв.
Каждый слой добавляется отдельной строкой в вашем Dockerfile.
И по этим слоям можно понять, почему образ получился большим, медленно собирается или плохо кэшируется.

Вот как можно инспектировать слои и увидеть, что изменилось в каждом слое.

Можно использовать утилиту dive.
Она даёт визуальное представление:

Каждый созданный слой
Какие файлы были добавлены или изменены
Сколько места занимает каждый слой

Когда вы начинаете анализировать слои образа, вы сможете выявить:
- Какая команда добавляет лишний вес
- Как оптимизировать Dockerfile для более маленьких и эффективных сборок

Утилита также показывает оценку эффективности образа, которая отражает, сколько данных дублируется или тратится впустую между слоями

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍209
Многие не до конца понимают, чем отличаются конвейеры CI/CD в DevOps и GitOps

В DevOps-конвейере CI/CD весь процесс выполняется единым потоком - от коммита кода, тестов, сборки, создания образа до прямого деплоя в кластер Kubernetes.

Такой подход быстрый и централизованный, но жёстко связывает деплой с процессом CI, оставляя мало возможностей для разделения или дополнительного контроля.

В GitOps-конвейере CI отвечает за тесты и сборку, а деплой выполняется через Git-коммиты: контроллер синхронизирует изменения из репозитория с кластером.

Вот инфографика, чтобы помочь вам лучше разобраться 👍

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍127🔥2
Вот интересный факт о Linux

Вы можете запустить полноценное отдельное ядро Linux внутри одного процесса на своей машине. Без root-доступа и без какого-либо ПО для виртуализации.

Это User-Mode Linux (UML) - специальный порт ядра, который работает как обычное пользовательское приложение.

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

Это мощный инструмент для разработки и отладки ядра, а также для создания изолированных тестовых окружений за считанные секунды.

Хотите разобраться глубже? Ознакомьтесь с полной статьей: тык

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64
Actions Runner Controller (ARC) — это контроллер Kubernetes для self-hosted раннеров GitHub Actions.

С помощью ARC вы можете:

🔹Развертывать self-hosted раннеры в кластерах Kubernetes простым набором команд

🔹Автоматически масштабировать раннеры по требованию

GitHub: actions-runner-controller

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5
Forwarded from Мир Linux
Принёс швейцарский нож для сетевиков: Networking Toolbox

Это офлайн-набор из 100+ сетевых инструментов в одном приложении. Конвертация данных, диагностика серверов, сетевые вычисления, проверка конфигов, всё под рукой и без интернета

Никаких сторонних зависимостей и опенсорс. Забираем здесь

@linuxos_tg
9
GitLab Architecture: A Complete Guide

В этом вводном гайде вы узнаете:

- Основные компоненты GitLab
- Хранилище GitLab
- Высокая доступность и масштабируемость
- Аутентификация и авторизация
- Мониторинг GitLab с помощью Prometheus и Grafana

Подробное руководство: https://devopscube.com/gitlab-architecture/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥3
Как (и зачем) использовать containerd? 🧐

containerd — вероятно, самый широко используемый контейнерный рантайм:

🔹Docker использует его под капотом для запуска контейнеров и хранения образов.

🔹Kubernetes использует его как CRI-рантайм для запуска Pod'ов.

Практикуйтесь в работе с containerd: https://labs.iximiuz.com/courses/containerd-cli

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
Это CSI-драйвер для хранилищ S3 (или совместимых с S3)

Этот инструмент может динамически создавать (выделять) бакеты и монтировать их в любой контейнер через FUSE-маунт

GitHub: k8s-csi-s3

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Большинство инженеров DevOps сосредоточены на автоматизации

Но, DevOps сегодня - это гораздо больше, чем просто CI/CD-пайплайны.

Это также про понимание того, как на самом деле работают системы и как проектировать их так, чтобы они выдерживали сбои.

В этом контексте есть одна концепция, которую должен знать каждый инженер DevOps: Write-Ahead Log (WAL), или «журнал предварительной записи».

Вот короткий пост, где объясняют, как работает WAL, с простыми примерами из реальной практики. Прочитать можно здесь: https://newsletter.devopscube.com/p/write-ahead-log-wal

Если вы хотите увидеть, как этот подход используется в масштабных системах, отличным примером будет платформа данных Netflix.

Они построили свою отказоустойчивую data-платформу вокруг принципа WAL, чтобы обеспечить сохранность данных даже при сбоях

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2🌚1
Бесплатный лайфхак для Linux 😎

Многие про это не знают или почти не пользуются.

В Linux можно сделать файл или каталог неудаляемым с помощью команды chattr, установив флаг +i:

sudo chattr +i -V CH-13.pdf


Флаг +i запрещает удалять, изменять и переименовывать файл, даже root не сможет этого сделать, пока флаг не снят.
Опция -V включает подробный вывод (verbose), чтобы увидеть, что именно команда делает.

Чтобы вернуть всё обратно:

sudo chattr -i CH-13.pdf


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly

Это интерактивный терминальный интерфейс для управления контейнерами Docker.

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

Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.

GitHub: dockly

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
Этот репозиторий - настоящая находка для инженеров DevOps и SRE

30+ практических лабораторных работ по Kubernetes, охватывающих всю экосистему DevOps

GitHub: Fast-Kubernetes

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126
Более чистый способ управлять алиасами kubectl

Мы подготовили подробное практическое руководство, чтобы помочь вам начать работу.

До выхода Kubernetes v1.33 приходилось вручную прописывать алиасы в .bashrc или .zshrc, вперемешку с другими настройками шелла

Это не было нативным и структурированным решением.

Теперь с kuberc вы можете определить все свои алиасы для kubectl в отдельном YAML-файле.

Это чисто, просто и даже можно держать под версионным контролем

Подробное руководство: https://devopscube.com/kubectl-aliases/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64
Kubernetes 101: назначение Pod'ов на узлы

В статье подробно рассматриваются механизмы назначения Pod'ов на узлы в Kubernetes.

Автор объясняет такие инструменты, как nodeSelector, nodeAffinity и taints/tolerations, которые позволяют контролировать, где именно будут запускаться ваши Pod'ы

👉 Ссылка на статью

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Kubernetes Swap

Когда вы деплойте Pod в Kubernetes, каждый нод использует свою физическую оперативную память (RAM) для запуска контейнеров.

Если на ноде заканчивается память, Kubernetes может начать убивать Pods, чтобы сохранить стабильность ноды.

С Kubernetes Swap можно избежать этого, разрешив ноде использовать часть диска как дополнительную виртуальную память (swap).

Вот статья, где подробно объяснили:

- Как работает Kubernetes Swap
- Основные сценарии использования swap
- Классы QoS для Pod и поведение при использовании swap
- Как выделяется swap для Pod'ов
- Практика: тестирование swap на воркер-нодах
- Определение нод с включённым swap с помощью NFD
- Мониторинг swap через метрики

Читайте здесь

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Kubernetes Toolkit — это контейнерный образ, который включает в себя основные инструменты: kubectl, Helm, Kustomize, Trivy и Flux.

Он предназначен для использования в CI/CD-пайплайнах и при локальной разработке, обеспечивая валидацию, сканирование безопасности, GitOps-функциональность и другие возможности

Забираем с GitHub

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2