Всё пошло по пайплайну | IT Notes
611 subscribers
98 photos
2 videos
52 links
Заметки одного айтишника.
Пишу про DevOps, IT, о жизни и движению вперёд.
Добро пожаловать 😌
Download Telegram
#гайд

Команды Linux, которые экономят мне часы и даже нервы


Когда много крутишься вокруг Linux-серверов, контейнеров и Kubernetes-кластеров, начинаешь замечать одну забавную штуку.
Можно окружить себя модными DevOps-штучками, обложиться дашбордами, но…
В минуту Х ты всё равно открываешь терминал и бьёшь по клавиатуре старые добрые команды Linux.
Они как старые друзья: не подводят и всегда готовы помочь.
Я собрал маленький «чемоданчик выживания» из набора команд, которые спасали меня чаще всего. Объяснил их простыми словами и добавил примеры, которые можно тут же попробовать.
Поехали:

1. Найти запущенный процесс

ps aux | grep docker


Когда что-то ведёт себя странно, это обычно первая команда, которую я выполняю. Это самый быстрый способ проверить, существует ли процесс, сколько его копий работает и сколько CPU/памяти он потребляет.

2. Кто использует порт

ss -tulnp


Полезно, когда сервис отказывается запускаться с сообщением «порт уже используется». Эта команда показывает, кто его занял.

3. Проверка дискового пространства

df -h


Закончилось место? Посмотри сведения по всем дискам. В половине случаев процессы забивают каталог /var.

4. Посмотреть размер каталога

du -sh /var/log


Когда диск внезапно прыгает с 20% до 90% использования, эта команда помогает мгновенно понять, какая директория внезапно распухла.

5. Мониторинг активности системы в реальном времени

top

htop # более навороченный


Сервер тормозит? Здесь ты увидишь что с ним: всплески CPU, утечки памяти, странные процессы всё видно в реальном времени. Диспетчер задач линуксойда.

6. Просмотр логов в режиме Live

tail -f /var/log/syslog


Команда, которая позволит в реальном времени смотреть, какие события происходят в системе.

——
На этом всё, простой набор команд, которые не раз выручали. Накидайте реакций если было полезно 👏🏻
10👍18🔥3👏1
#гайд

Вы когда-нибудь задумывались, что за version стоит в начале docker-compose.yml?


Пишешь привычное version: "3.8", потом делаешь docker-compose -v, видишь версию 2.x и такой:
WTF? Как так?
Разбираемся.

🐳 Откуда взялась эта строка version?
Исторически было две разные реализации docker-compose:
docker-compose (через дефис) - старый бинарник на Python.
docker compose (без дефиса) - новый плагин для Docker, написанный на Go.
Именно старой Python-версии нужно было знать, какую схему файла использовать. Поэтому в docker-compose.yml указывали версию схемы:
version: “1” - устаревшая, ещё без сетей.
version: “2” - улучшения для работы на одном хосте.
version: “3” - схема для Docker Swarm.
Каждая схема определяла доступный функционал и поля.

🚀 А что сейчас?
Сегодня Go-версия (docker compose) стала основной, а старая Python-версия deprecated.
Современный docker compose игнорирует строку version.
Формат файла теперь определяется автоматически.

🧐 Что использовать вам?
Если у вас старый python-compose (до 2.x) тогда версия файла ещё имеет значение.
Если у вас новый docker compose (2.x и выше) - тогда НЕ указывайте version вовсе. Это считается best practice.

Было:
version: “3.8”
services:
web: nginx:1.25-alpine


Стало:
services: 
web: nginx:1.25-alpine


Официальная дока:
https://docs.docker.com/reference/compose-file/version-and-name/
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍9🔥51
#гайд

Тема AI сейчас на хайпе, так что добавил немного практики.
Собрал гайд, как развернуть бесплатную нейросеть для генерации картинок в пару кликов: локально или на ресурсах Google.
Всё по шагам, с примерами:
https://itzm.tech/p/ai_fooocus/
Для первого самостоятельного запуска самое то.
10🔥8👍2
Друзья, хочу подвести итоги этого года и сделать это вместе с Вами.
Когда я начинал этот телеграм-канал, он задумывался как место для теории.
Но всё быстро выросло в настоящее сообщество 🤝
Наши общие результаты за год:
400+ человек, которым интересны ИТ и развитие в профессии
20+ практических гайдов на сайте
300+ комментариев с обсуждениями, вопросами, опытом и подсказками
Появился YouTube-канал с более 700 подписчиками, где мы говорим про ИТ «вживую»
200+ звёзд и реакций на канале, за что вам отдельное спасибо!
Для меня это важный знак: то, что мы делаем, реально помогает.
У меня ещё много идей и материалов, которыми хочу делиться - продолжим уже в новом году.
Проведите эти дни рядом с родными и близкими, отдохните и перезагрузитесь.
С Новым годом! 🎄
Спасибо, что Вы здесь
2🔥1674😁2
This media is not supported in your browser
VIEW IN TELEGRAM
План: пройти курс по Prometheus и Grafana
Реальность:
5😁181
Объясни контейнеры в двух словах:
😁184🔥2
#гайд

Ситуация
: Контейнер с приложением падает, ты тревожно бегаешь по подам и нодам в поисках логов. Другое дело, когда их собирают и складывают в одном месте агенты.
Связка: FluentBit + Kafka + Logstash + Opensearch
Как настроить такое в кубе читай здесь:
https://itzm.tech/p/logging_app/

А более подробно про логи тут:
https://t.me/itzm_notes/62
2👍6🔥53
#live

Хотел написать про то, как облегчить себе жизнь и крутить всякими куберами через приятную глазу оболочку используя Lens.
Захожу и подключаюсь к своему домашнему стенду куба, на котором не был полгода точно. Смотрю в событиях: грохнулся под с графаной. Иду в логи: пишет проблемы с образом.
Хм, но я ничего не менял, а когда последний раз тушил стенд всё работало. Начинаю вспоминать, что устанавливал графану через Helm, в пару кликов.
Пробую обновить репозиторий хэлма командой
helm repo update

дальше обновляю графану
helm upgrade my-grafana bitnami/grafana --values ./grafana-values.yaml

Получаю сообщение
WARNING: Since August 28th, 2025, only a limited subset of images/charts are available for free.
Subscribe to Bitnami Secure Images to receive continued support and security updates.

Очень интересно, пойду в гугл. Оказывается я упустил, что компания bitnami делающая образы продалась Broadcom (которая владеет VMware и пр) и теперь их репозитории стали платными 💰
Благо я использовал их только на тестовом стенде, поэтому просто удалил helm и взял официальный вот так:
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm uninstall my-grafana
helm repo remove bitnami
helm install my-grafana grafana/grafana --values grafana-values.yaml

Теперь у графаны все хорошо, а кластер выключен до следующего раза)

Если хочешь запилю полную инструкцию по установке Prometheus/Grafana. Прожми:
В докер - ❤️, в кубер - ❤️‍🔥

ах да, про Lens, его можно скачать тут https://lenshq.io/download
он бесплатный, но требует инет. (В закрытом контуре не установить)
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤‍🔥3212🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Вот прям навеяло из разговоров в чате✌️
Ты: я все знаю, но у меня нет реального опыта в девопс что написать в резюме
Рандомный Чел: посмотрел одно видео кто такой девопс также его резюме
😁9👍2🔥2
Прочитал недавно книгу:
Kubernetes для DevOps

[«Cloud Native DevOps with Kubernetes»]


Она не про то «как запустить pod», а про то зачем Kubernetes вообще нужен бизнесу и DevOps инженеру.

Авторы постоянно отговаривают использовать установку Кубера своими силами. Не строй сам, доверь всё облакам. Ожидаемо из названия книги)

Очень кратко, о чём пишут:
- как появился Kubernetes и почему стал стандартом
- из каких компонентов состоит кластер (master / worker)
- как оптимизировать ресурсы и размещение (requests/limits, affinity и т.д.)
- как мониторить (метрики, алерты, наблюдаемость)
- как защищать (RBAC, политики, секреты)
- деплой приложений через HELM
- GitOps в Kubernetes

Ключевые идеи:
💡 Kubernetes = система, которая постоянно приводит реальность к «желаемому состоянию» из манифестов
🙅 отказ - это нормальный сценарий, поэтому тестируем устойчивость кластера (chaos-подход)
🔐 безопасность и доступы это не про сделаем потом когда-нибудь, а часть дизайна кластера
📊 без метрик и алертов Kubernetes превращается в «чёрный ящик»
💊 Кубер не панацея, не нужно использовать его везде. Для баз данных, простых проектов и монолитов проще и надежнее сделать на старых добрых VM.

Контекст:
Облака, IaC, CI/CD и контейнеры - это уже база.
Kubernetes закрывает главную боль: управление контейнерами в масштабе (обновления без простоя, масштабирование, стабильность).

Для кого книга:
DevOps / SRE, системные админы, кто уже трогал Docker/Linux/Cloud
не для совсем новичков а-ля «что такое контейнер»

Вывод:
Если хочешь понять Kubernetes как платформу для продакшена, а не набор команд книга прям в тему.
Не заменяет документацию, но отлично объясняет концепции и мышление DevOps.
Мне зашла 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍9❤‍🔥3🔥1
Запоминаем 😁
2😁81
#live

Пятый день решаю 100500 проблем и зависимостей при установке кубера через кубспрей в закрытый контур (без инета). Классно, истерически весело и интересно.
1😁5🔥2
#гайд

Лови пока гайд как Харбор поставить. В вакансиях он часто попадается, а ты до сих пор не знаешь что это такое и пользуешься докерхабом 😳

https://itzm.tech/p/harbor_install/
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍8❤‍🔥2🔥2
#live
Сегодня мобильный интернет вдруг стал другим. Как будто кто-то аккуратно прикрыл часть дверей. Остались только несколько «разрешённых» коридоров.
Некоторые двери живут пару минут, а потом закрываются с номером 451.
И только по привычке тянешься туда, где ещё вчера было открыто.
2🔥4😱4😢3
#гайд

Трудягам в помощь. Такой гайд только у меня и у Майкла Джексона.
Установка кубера в закрытом контуре а-ля Без интернета. 100к нервных клеток безвозвратно сожжены в процессе, но все заработало. Поддержи 👍

https://itzm.tech/p/kubespray_offline/
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥14❤‍🔥5👍51
Чутка пропал, но едем дальше 🛞

#теория

Ты развернул кластер кубернетес
Дальше у тебя возникнет вопрос, «а где хранить данные приложений и сервисов, которые работают в контейнерах (подах)»
*И даже если он не возникнет, ты столкнешься с ним :)
Например, тот же гитлаб при установке в кубер нуждается в хранении своих репозиториев с кодом и файлов.
Ты скажешь: «Ничего страшного, я буду их хранить на воркер ноде»
Окей, проблемы которые тебя ждут: А что если нода будет недоступна? Или будет перегружена (занята)? Диск переполнен? Или в конце концов кто-то ручонками случайно удалит этот сервер?
Данные будут недоступны и весь твой код, файлы будут бесследно потеряны.

На помощь приходит он: Longhorn
Это реплицируемая система хранения данных для контейнеров. Когда ты развернешь его у себя в кластере, он динамически «откусит» от диска каждой воркер ноды место. После чего ты укажешь в своем приложении storageclass: longhorn и требуемое место скажем 5 гб. Данные твоих приложений будут размещаться и реплицироваться на все воркер ноды. В случае если одна из нод будет недоступна он автоматически переключит volume и приложение продолжит работу.
Когда нода появится «в строю» longhorn удалит данные на ней, ведь они устарели пока она была отключена и развернет «свежую» версию данных. Все ноды будут держать актуальную/последнюю версию.
Также longhorn имеет удобный UI интерфейс, где ты можешь отслеживать все что связано с хранилищами и даже делать бэкапы и снапшоты.

Когда целесообразно выбрать это хранилище?
- Небольшой кластер (3-20 нод)
- Когда нужно простое решение
- Когда нужно быстро и легко развернуть хранилище в кубере
В том же Ceph нужно больше навыков, времени, знаний и ресурсов для построения, но это уже другой масштаб.

В ближайшие дни скину гайд как его легко установить внутрь кластера в пару команд 😙
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥8👍53