UndeRcode 2.0 - DevOps/AI
700 subscribers
365 photos
84 videos
7 files
329 links
DevOps, AI, IT - все самое интересное

По всем вопросам: https://xn--r1a.website/Fam1nor
Download Telegram
Руководство по сетям в Kubernetes

Наткнулся на ресурс, где собран обзор различных сетевых компонентов Kubernetes с акцентом на то, как именно они реализуют необходимую функциональность.

Что есть:
🔹 Network model
🔹 CNI
🔹 Services, Ingress/Egress
🔹 Network Policies
🔹 DNS и куча другого

Многие разделы содержат подразделы. Так, например, в блоке про CNI есть дополнительная информация о Flannel, Weave, Calico, Cilium

И немного практики в виде лаб (не везде, но есть)

Это не общее обучающее руководство по Kubernetes. Предполагается, что читатель уже знаком с базовыми понятиями и фундаментальными компонентами кластера Kubernetes — такими как pods, deployments и services

Забираем здесь 🍯
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Изучение контейнеров с нуля

🔹Linux-контейнеры: низкоуровневая реализация

🔹Образы: что это такое и зачем они нужны

🔹Менеджеры: как Docker управляет совместной работой контейнеров на одном хосте

🔹Оркестраторы: как Kubernetes координирует контейнеры в кластере

https://iximiuz.com/en/posts/container-learning-path/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4
😀 Крутая шпаргалка по командам Git на русском

echo "# название" >> README.md - создание файла README.md
git init - инициализация репозитория
git add README.md - добавления файла README.md в проект
git commit -m "first commit" - получает проиндексированный снимок состояния и выполняет его коммит в историю проекта
git remote add origin https://github.com/stanruss/название.git - команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.
git push -u origin master - кзменения отправляются на удаленный сервер

git log --oneline - посмотреть все коммиты.
git checkout . - восстановить все.
git checkout "код коммита" - вернуть до состояния этого коммита.
git checkout master - вернуться в ветку мастер.

Восстановить файлы на локальном компьютере:
git fetch --all
git reset --hard origin/master или git reset --hard origin/<название_ветки>

git add text.txt - Добавить файл в репозиторий
git rm text.txt - Удалить файл
git status - Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)
git commit -a -m "Commit description" - Сделать коммит
git push origin - Замерджить все ветки локального репозитория на удаленный репозиторий
git push origin master - Аналогично предыдущему, но делается пуш только ветки master
git push origin HEAD - Запушить текущую ветку, не вводя целиком ее название
git pull origin - Замерджить все ветки с удаленного репозитория
git pull origin master - Аналогично предыдущему, но накатывается только ветка master
git pull origin HEAD - Накатить текущую ветку, не вводя ее длинное имя
git fetch origin - Скачать все ветки с origin, но не мерджить их в локальный репозиторий
git fetch origin master - Аналогично предыдущему, но только для одной заданной ветки
git checkout -b some_branch origin/some_branch - Начать работать с веткой some_branch (уже существующей)
git branch some_branch - Создать новый бранч (ответвится от текущего)
git checkout some_branch - Переключиться на другую ветку (из тех, с которыми уже работаем)
git branch # звездочкой отмечена текущая ветвь - Получаем список веток, с которыми работаем
git branch -a # | grep something - Просмотреть все существующие ветви
git merge some_branch - Замерджить some_branch в текущую ветку
git branch -d some_branch - Удалить бранч (после мерджа)
git branch -D some_branch - Просто удалить бранч (тупиковая ветвь)
git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Изменения, сделанные в заданном коммите
git push origin :branch-name - Удалить бранч из репозитория на сервере
git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)
git push -f - Залить на сервер измененные коммиты
git clean -f - Удаление untracked files
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
📢Совет дня по AI/ИИ:

Чтобы открыть всю мощь ИИ, начните с помощью ИИ искать разные промокоды )) Можно экономить нормально денег при покупке разных товаров :) 💪💪
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6
Путаешься между Dockerfile и Docker Compose?

Это для тебя.

Хотя они дополняют друг друга, их назначение в контейнеризированной среде различается.

Dockerfile — используется для создания и сборки Docker-образов.

Docker Compose — используется для запуска контейнеров как части мультиконтейнерного окружения или с определёнными параметрами выполнения.

🔹 Начиная с версии 1.28.6, Docker Compose по умолчанию ищет compose.yaml или compose.yml. Поддержка docker-compose.yaml/yml сохраняется для обратной совместимости, но если оба файла присутствуют, будет использоваться compose.yaml.

Вот простая схема, чтобы тебе было легче разобраться
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥2👍1
Эта схема отображает ключевые концепции безопасности в Kubernetes — от RBAC, PodSecurity и аудита до изоляции контейнеров — помогая командам визуализировать точки применения политик.

Разработана Telenor для on-prem кластеров, отлично подходит для моделирования угроз и проведения ревью.

https://kubesec-diagram.github.io/
👍4
👩‍💻 Обзор файловой системы Linux

Эта схема показывает структуру файловой системы Linux и объясняет предназначение различных директорий, находящихся в корневом каталоге /

/bin - Бинарные файлы основных команд
/boot - Файлы загрузчика системы
/dev - Файлы устройств
/etc - Системные конфигурационные файлы, специфичные для хоста
/home - Домашний каталог пользователя
/lib - Модули общих библиотек
/media - Файлы мультимедиа, такие как CD-ROM
/mnt - Временно смонтированные файловые системы
/opt - Дополнительные пакеты программного обеспечения
/proc - Интерфейс к структурам данных ядра
/root - Домашний каталог пользователя root
/run - Данные времени выполнения
/sbin - Системные бинарные файлы
/srv - Служебные данные, обслуживаемые этой системой
/sys - Виртуальный каталог для информации о системе
/tmp - Временные файлы
/usr - Ресурсы Unix-системы
/var - Файлы, которые постоянно изменяются
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Привет, DevOps-инженеры! Если вы уже освоили азы NGINX, давайте углубимся в его мощь и рассмотрим, как он становится незаменимым инструментом в сложных архитектурах. Сегодня разберем кейс: обслуживание статического фронтенда и проксирование запросов к бэкенд API через NGINX.

Представьте: у вас есть SPA (Single Page Application) на React/Vue/Angular, который нужно отдавать пользователям, и REST API на Python/Node.js, к которому этот фронтенд обращается. NGINX идеально подходит для этой задачи.

Пример конфигурации: nginx.conf

server {
listen 80;
server_name your-domain.com www.your-domain.com;

# Отдача статических файлов фронтенда
location / {
root /var/www/your-frontend-app/build; # Путь к скомпилированному фронтенду
try_files $uri $uri/ /index.html; # Важно для SPA: все запросы, не являющиеся файлами, ведут на index.html
}

# Проксирование запросов к API
location /api/ {
proxy_pass http://your-backend-service:8000/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

# Опционально: редирект HTTP на HTTPS (для продакшена)
# listen 443 ssl;
# ssl_certificate /etc/nginx/ssl/your-domain.crt;
# ssl_certificate_key /etc/nginx/ssl/your-domain.key;
# return 301 https://$host$request_uri;
}


Разберем ключевые моменты:

location /
- Отвечает за отдачу статических файлов вашего фронтенда. root указывает на директорию со скомпилированным приложением. try_files — это магия для SPA, которая гарантирует, что при прямом заходе на роут (например, your-domain.com/users) NGINX отдаст index.html, а не 404.

location /api/
- Здесь мы настраиваем проксирование всех запросов, начинающихся с /api/, на ваш бэкенд-сервис. proxy_pass указывает адрес и порт бэкенда. Заголовки proxy_set_header критически важны для корректной работы бэкенда, так как они передают информацию об оригинальном запросе (хост, IP клиента, протокол).

💡 DevOps Лайфхак: Горячая перезагрузка NGINX без простоя!
В продакшене каждая секунда простоя — это деньги. При изменении конфигурации NGINX не обязательно его полностью останавливать и запускать заново. Используйте команду:
sudo nginx -s reload


Эта команда заставляет NGINX загрузить новую конфигурацию, не прерывая обработку текущих запросов. Старые воркеры продолжают обслуживать активные соединения, а новые начинают использовать обновленную конфигурацию. После завершения старых соединений, старые воркеры корректно завершают работу. Это позволяет обновлять конфигурацию NGINX без единого простоя!

Почему это важно? В CI/CD пайплайнах, когда вы деплоите новую версию фронтенда или бэкенда, или меняете маршрутизацию, nginx -s reload становится вашим лучшим другом для бесшовных обновлений.
🔥4
Если у вас вдруг сегодня падает npm install или npm ci, то это потому что команда npm-security выпилила пакет stylus из npm, заявляя, что в нём найдена зловредная уязвимость.

Весь ваш enterprise-проект, построенный на сотнях зависимостей, оказался карточным домиком, из которого вытащили одну пыльную картонку.

https://github.com/advisories/GHSA-fh4q-jc76-r59p
https://github.com/stylus/stylus/issues/2938
😁4👍1👌1
SoftSkills.txt
6.6 KB
Кстати, DevOps – это не только про харды, но и про софты. Оставлю топ-10 советов, как быстро развить софты, потому что софты, в последнее время, выходят на передний план с появлением всяких там ИИ/LLM и прочего 😊
❤‍🔥4
Как вам такая инфографика?
🔥6
Для отладки bash-скриптов существует инструмент set -xve. Это мастхев фича именно на момент, создания чего-либо т. к. не всегда логика может работать правильно, а с set -xve, можно вовремя увидеть все значения переменных и т.п. не используя мусорные конструкции, например, echo «Error in function xxx».

Применяется так:
#!/bin/bash -xve
set -xve


Основные флаги set:

x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.

Пример:

Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
#!/bin/bash -xve

PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'

bar=10
echo ${bar}
echo $((6 + 6))


После выполнения мы видим:
bar=10
+(./script.sh:6): foo=10
echo ${bar}
+(./script.sh:7): echo 10
10
echo $((6 + 6))
+(./script.sh:8): echo 12
4


Теперь если скрипт где-то вылетает с плохим статусом, всегда можно узнать в какой строке это приключилось

Немного украшательств, экспортируем PS4:
PS4='\033[0;33m+(${BASH_SOURCE}:${LINENO}):\033[0m ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'


Происходит подкрашивание запускаемых строчек.

С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.
3👍3
Горячие клавиши терминала Linux (часть 1)

Общие:

Ctrl + Alt + T — в дистрибутивах, основанных на Ubuntu, это сочетание клавиш используется для открытия терминала.

Tab — эта клавиша используется для автодополнения в терминале. Вам достаточно набрать начало какой-нибудь команды, затем нажать её, и команда предложит доступные варианты или завершит её, если она одна.

Ctrl + L — очистить весь вывод терминала.

Ctrl + S — приостановить вывод терминала.

Ctrl + Q — возобновить вывод, если он был приостановлен.

Ctrl + C — отправить команде сигнал SigInt для её завершения.

Ctrl + Z — свернуть текущую команду в фоновый режим.
❤‍🔥3
Ребята давайте еще раз попрошу вас, проголосовать на какие темы вам было бы интересно читать посты,это не говорит о том что посты будут только на эту тематику, но упор будет выбран на интересующую вас тему
Anonymous Poll
37%
DevOps для начинающих (разные фишки,хаки для начинающих)
24%
DevOps для опытных (сложные хаки, фишки)
21%
1+2 варианты
8%
Новости из мира DevOps
13%
DevOps+AI новости
29%
DevOps+AI внедрение ИИ процессов в DevOps
29%
Личный опыт
24%
Факапы и лайфхаки из мира DevOps
11%
Мемчики из мира IT
18%
За все варианты