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

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

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Download Telegram
Совет по Linux на сегодня

Не помните название команды?

Используйте команду apropos, чтобы освежить память

apropos search_term


Например, если вы ищете команду, связанную с CPU 👆

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍12🔥3
Архитектура Kubernetes — упрощённое объяснение

KUBECTL — Позволяет взаимодействовать с Kubernetes.

API SERVER — "Мозг" системы, обрабатывающий все запросы.

CONTROLLER MANAGER — Управляет ресурсами кластера по мере необходимости.

SCHEDULER — Находит оптимальное место для запуска рабочих нагрузок.

KUBELET — Запускает рабочие нагрузки на каждом узле (ноде).

ETCD — Хранит всю информацию о состоянии кластера (ключ-значение хранилище).

KUBE PROXY — Перенаправляет трафик к нужным подам.

POD — Единица размещения, в которой выполняются контейнеры.

CONTAINER RUNTIME — Запускает контейнеры внутри подов

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍10🔥6
Быстрый совет по Linux

Вы можете сгруппировать файлы по их расширениям с помощью команды:

ls -X


Файлы будут сгруппированы по расширениям в алфавитном порядке

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍15
Карта ключевых команд Kubernetes

Это не полный список; здесь приведены только основные команды

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7🔥2
Media is too big
VIEW IN TELEGRAM
Готовимся к собеседованию — ловите крутейший сборник самых частых вопросов с ответами и примерами кода.

Разбито по полочкам: что нужно знать для прохождения HR, техническое интервью, полезные материалы и топ вопросов по популярности.

Топ на русском и основан на опыте отечественных же компаний, забираем

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🔥2🏆1
Ваши фронтенд и бэкенд находятся в отдельных репозиториях? Не проблема — вы всё равно можете собрать и доставить всё в одном Docker-образе

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍11👀4🤯2💊2
Совет дня для Linux

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

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

$ sudo chattr +i -V /home/traw/keys.txt

Опция -V — подробный вывод (verbose).

Чтобы сделать директорию неудаляемой, добавьте рекурсивную опцию -R:
$ sudo chattr +i -VR /home/traw/backups

Чтобы снова разрешить удаление файла, используйте флаг -i. Для директорий — -i с опцией -R.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍209🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Техдир выдал каждому девопсу по будильнику, который синхронизирован с критическими алертами на продакшене

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38👍3🌚3
Многие инженеры по Kubernetes до конца не понимают, как работает автоскейлинг в Kubernetes и в чём разница между HPA, VPA и KEDA.

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

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥4
Калькулятор Chmod

Отличный калькулятор Chmod для преобразования прав доступа к файлам Linux между различными форматами.

https://chmod-calculator.com/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
💊14👍9😁73🔥3
Виртуальная машина vs Контейнеры

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥2
Sysadmin vs DevOps 😁

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁43🌚42🔥2
Как (и зачем) использовать 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
🔥8👍32
26 сетевых протоколов, которые нужно знать

FTP (20/21, TCP) — Протокол передачи файлов: используется для передачи файлов между клиентом и сервером.

SFTP (22, TCP) — Защищённый протокол передачи файлов: FTP по SSH для безопасной передачи файлов.

TFTP (69, UDP) — Упрощённый протокол передачи файлов: простой, незащищённый протокол передачи файлов.

SSH (22, TCP) — Secure Shell: защищённый удалённый вход и выполнение команд.

TELNET (23, TCP) — Teletype Network: незащищённый удалённый вход и выполнение команд.

SMTP (25, TCP) — Простой протокол передачи почты: используется для отправки электронной почты.

SMTPS (587, TCP) — SMTP через TLS: SMTP поверх Transport Layer Security (TLS) для защищённой передачи электронной почты.

POP3 (110, TCP) — Post Office Protocol v3: получение электронной почты путём её загрузки с сервера.

POP3S (995, TCP) — POP3 через SSL: защищённый POP3 для получения электронной почты.

IMAP (143, TCP) — Протокол доступа к сообщениям Интернета: доступ к электронной почте напрямую на сервере.

IMAPS (995, TCP) — IMAP через SSL: защищённый IMAP-доступ к почте.

HTTP (80, TCP) — Протокол передачи гипертекста: незащищённый веб-сёрфинг.

HTTPS (443, TCP) — Безопасный протокол передачи гипертекста: защищённый веб-сёрфинг через SSL или TLS.

DNS (53, TCP/UDP)
— Система доменных имён: используется для преобразования доменных имён в IP-адреса.

DHCP (67/68, UDP) — Протокол динамической настройки хоста: используется для динамического назначения IP-адресов.

NTP (123, UDP) — Протокол сетевого времени: синхронизация часов по сети.

LDAP (389, TCP) — Протокол лёгкого доступа к каталогам: доступ и управление информацией каталогов.

LDAPS (636, TCP/UDP) — LDAP через SSL: используется для защищённого доступа к LDAP.

SNMP (161/162, UDP) — Протокол простого управления сетью: используется для мониторинга и управления сетевыми устройствами.

SYSLOG (514, UDP) — Системное логирование: протокол и система журналирования сетевых событий.

SMB (445, TCP) — Протокол серверных сообщений: совместное использование файлов и сетевые коммуникации.

SQL (1433, TCP) — Язык структурированных запросов (SQL): управление БД от Microsoft.

SQLNET (1521, TCP) — SQLNET (служба Oracle Network): обеспечивает взаимодействие клиентов Oracle SQL с сервером баз данных Oracle.

MySQL (3306, TCP) — MySQL: сервер базы данных MySQL.

RDP (3389, TCP/UDP) — Протокол удалённого рабочего стола: удалённый доступ к рабочему столу.

SIP (5060/5061, TCP/UDP) — Протокол установления сеансов: используется для управления мультимедийными сессиями связи.


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍226🔥4🌚1🤝1
Совет дня по Linux

Многие либо не знают об этом, либо почти не используют.

В Linux вы можете нажать ~TAB TAB, чтобы быстро получить список всех доступных пользователей в системе.

$ ~TAB TAB


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥76😁1
Никогда не открывайте порты в Docker-контейнерах следующим образом:

ports:
- "3000:3000"


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

ports:
- "127.0.0.1:3000:3000"


Такая конфигурация привязывает сервис к localhost, предотвращая доступ к нему извне по адресу ip:3000.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
39👍24🤔13🔥8
Список часто используемых команд Kamal

Хотя перечень не является полным, он охватывает наиболее распространённые задачи

🔹Команда инициализации используется для создания конфигурационных и секретных файлов один раз после добавления Kamal в проект.
$ kamal init


🔹Установка Docker на всех целевых хостах
$ kamal server


🔹 Алиасы

Kamal предоставляет kamal shell из коробки. Я обычно добавляю kamal console для быстрого доступа к Rails-консоли.
$ kamal shell [-d production]
# app exec -i --reuse "bin/rails console"
$ kamal console [-d production]


🔹 Деплой приложения [в staging-окружение]
$ kamal deploy [-d staging]


🔹Откат приложения до VERSION [в staging-окружении]
$ kamal rollback [VERSION] [-d staging]


🔹 Сборка образов
Большую часть времени вы не будете использовать команду kamal build напрямую,
так как она в основном используется в kamal deploy и kamal redeploy.
Тем не менее, вы можете использовать её для сборки образа без его пуша, что удобно для тестирования.
$ kamal build dev


🔹 Ниже приведены несколько команд для чтения логов приложения и его аксессуаров
$ kamal app logs [--roles=web -n 100 -f]
$ kamal app logs [--primary -n 100 -f]
$ kamal app logs [--hosts=<ip_address> -n 100 -f]
$ kamal audit


🔹 Логи аксессуара PgHero [в staging-окружении]
bash
$ kamal accessory logs pghero [-d staging]```

🔹 Логи прокси-сервера [в staging-окружении]
$ kamal proxy logs [-d staging]


🔹 Показать объединённую конфигурацию (включая секреты) [для staging-окружения].

Полезно для отладки и если вы забыли IP-адрес сервера.
$ kamal config [-d staging]


🔹 Вывести секреты в stdout [для staging-окружения]
$ kamal secrets print [-d staging]


🔹 Показать информацию обо всех контейнерах, сгруппированных по ролям [для staging-окружения]
$ kamal details [-d staging]


🔹 Показать только контейнеры приложения [в staging-окружении], [например, для web-ролей]
$ kamal app details [-d staging] [--roles=web]


🔹 Показать только контейнеры аксессуара PgHero [в staging-окружении]
$ kamal accessory details pghero -d staging


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Как работают email протоколы?

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍224🔥3
Самый распространённый способ запустить контейнер — использовать Docker CLI. Но что именно делает команда docker run? Чем она отличается от:

🔹 podman run

🔹 nerdctl run

🔹 ctr run

🔹 runc create/start

Мини-курс, чтобы научиться запускать контейнеры с разными рантаймами:
https://labs.iximiuz.com/skill-paths/run-containers-across-runtimes

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
После многих лет использования NGINX в проектах на Docker Compose, автор решил перейти на
traefik — и отмечает, что это стало одним из лучших решений в области DevOps за всё время.

В своём блоге он подробно описывает полную настройку, что изменилось и почему использование Traefik значительно упрощает работу.

Traefik из коробки предоставляет:

Автоматическую маршрутизацию на основе меток контейнеров
Встроенный HTTPS через Let’s Encrypt
Дашборд в реальном времени для маршрутов и сервисов
Балансировку нагрузки с поддержкой "липких" сессий
Нативную интеграцию с Prometheus для сбора метрик
Отсутствие необходимости вручную поддерживать конфигурационные файлы

Ссылка на блог:
https://medium.com/@prateekjain.dev/why-i-replaced-nginx-with-traefik-in-my-docker-compose-setup-32f53b8ab2d8

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍9💊1