Useful Tools | Linux | GitOps | DevOps
الذهاب إلى القناة على Telegram
Полезные opensource проекты на все случаи жизни, а иногда и советы. Понравился проект из поста - поддержи автора звездой! Web: https://gitgate.d3.ru Сотрудничество: @maxgrue
إظهار المزيد6 789
المشتركون
-124 ساعات
-47 أيام
+1430 أيام
أرشيف المشاركات
Совет дня:
Как избавиться от
swap в виде партиции и перенести его его в файл
1. Отключте текущий swap и закоментируйте строку для swap в /etc/fstab
sudo swapoff -a
2. Подотовьте файл для будущего свапа
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
3. Подключите swapfile и проверьте его размер
sudo swapon /swapfile
free
4. Сделайте изменения доступными после загрузки, добавив строку в /etc/fstab
echo "/data/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
Есть и не очевидная выгода. В дальнейшем, если вам потребуется изменить размер swap, не придется двигать партиции, достаточно в пп..1 указать новый размер и пропустить пп.4
опубликовано в @gitgate
Как всегда обсуждение в комментариях.
#tips #swapСовет дня:
Как быстро и корректно системными средствами увеличить диск в виртуалке?
1. Добавить свободное место в блочное устройство в гипервизоре
2. Внутри VM перечитать размер диска
echo 1>/sys/class/block/sdb/device/rescan
3. Установить пакет cloud-guest-utils в составе которого находится нужная нам утилита growpart
apt-get install cloud-guest-utils
4. раздвинуть в таблице разделов необходимую партицию
growpart /dev/sda 1
5. Паздвинуть на увеличенную партицию файловую систему
resize2fs /dev/sda1
Примечание: в таблице разделов после увеличиваемой партиции должно быть свободное место. Возможно вам еще понадобятся утилиты lsblkk, gpart
В обсуждениях под постом можно предложить и свои способы, их немало.
опубликовано в @gitgate
#tips #diskСовет дня:
Ограничение памяти с помощью cgroups
Control Groups (cgroups) позволяют ограничивать объем памяти, доступной для группы процессов.
Для начала необходимо создать группу для ограничения памяти:
sudo cgcreate -g memory:/mygroup
Далее настраиваются ограничение на использование памяти для группы mygroup. Например, ограничение на 512 MB:
echo 512M | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes
Добавьте процесс в группу cgroups, указав его PID:
sudo cgclassify -g memory:/mygroup <PID>
Либо запустите процесс непосредственно в группе cgroups:
sudo cgexec -g memory:/mygroup <command>
Теперь процесс будет ограничен в использовании памяти, что поможет избежать ситуаций, когда один процесс использует всю доступную память.
Примерно так же задаются ограничения и по CPU
опубликовано в @gitgate
#tips #cgroupscgroup-utils - предоставляет утилиту и библиотеку для контроля cgroups в Linux. Например, топ cgutil - htop подобная утилита , которая показывает деятельность запуска процессов в cgroups
Доступные команды:
- configs
- event
- mkdir
- pgrep
- rmdir
- stats
- top
- tree
Поддерживаемые подсистемы:
- blkio (с возможностью debug)
- cpuset
- cpu and cpuacct
- devices
- freezer
- hugetlb
- memory
- net_cls
- net_prio
- pids
- rdma
Т.е. даже не используя контейнеризацию вы можете не только обернуть любой процесс в cgroups с установленными лимитами например по памяти или CPU и изоляцией, но и удобно им управлять и наблюдать.
Например поднять пару инстансов постгреса, чтобы они не дрались за память. :)
https://github.com/peo3/cgroup-utils
опубликовано в @gitgate
#cgroups #tools #cli #utilsСовет дня:
Как попасть на узел в закрытой сети через
jumphost по ssh.
ssh -J user1@hostname1:port1 user2@hostname2:port2
Где hostname1 - промежуточный jump узел с доступом извне, hostname2 узел изолированный от внешних каналов, но с сетевой связаностью с hostname1
Для удобства можно прописать алиасом в файле ~/.bashrc
alias jump='ssh -J user1@hostname1:port1'
И просто вызывать командой jump user2@hostname2:port2
опубликовано в @gitgate
#tips #ssh #jumphostpg_activity - инструмент командной строки (CLI) для мониторинга активности сервера PostgreSQL похожий на htop
Кстати, включено пакетом в базовые репы многих дистрибутивов линукса.
Запуск:
sudo -u postgres pg_activity -U postgres
https://github.com/dalibo/pg_activity
опубликовано в @gitgate
#moni #postgres #pg #top #sqlbunkerweb-plugins - репозиторий содержит «официальные» плагины для BunkerWeb
Каждый плагин расположен в подкаталоге этого репозитория. Файл Readme, расположенный в каждом подкаталоге, содержит документацию о плагине.
Список плагинов:
- ClamAV
- CrowdSec
- Coraza
- Discord
- Slack
- VirusTotal
- WebHook
https://github.com/bunkerity/bunkerweb-plugins
опубликовано в @gitgate
#nginx #bunkerweb #pluginBunkerWeb - следующее поколение брандмауэра WAF для web-приложений c открытым исходным кодом
Будучи полнофункциональным веб-сервером (на основе Nginx под капотом), он защитит ваши веб-сервисы, чтобы сделать их «безопасными по умолчанию». BunkerWeb плавно интегрируется в ваши существующие среды (Linux, Docker, Swarm, Kubernetes,…) и полностью настраивается (не паникуйте, есть потрясающий веб-интерфейс, если вам не нравится CLI). Другими словами, кибербезопасность больше не является хлопотом.
BunkerWeb содержит первичные функции безопасности как часть ядра, но его можно легко расширить с помощью дополнительных благодаря системы плагинов.
Функции безопасности
- поддержка HTTPS с прозрачной автоматизацией Let's Encrypt
- современная веб-безопасность: заголовки HTTP Security, предотвращение утечек, TLS hardering
- встроенный Modsecurity WAF с набором правил Core OWASP
- автоматический запрет странного поведения на основе кода состояния HTTP
- применение лимитов подключений и запросов для клиентов
- блок ботов для решения проблем (например: cookie, JavaScript, Captcha, Hcaptcha или Recaptcha)
- блокировка известных плохих IP с внешними черными списками и DNSBL
- и многое другое...
https://github.com/bunkerity/bunkerweb
Домукентация: https://docs.bunkerweb.io
Демо: https://demo.bunkerweb.io
Примеры: https://github.com/bunkerity/bunkerweb/raw/v1.5.12/examples
Конфигуратор: https://config.bunkerweb.io
опубликовано в #gitgate
#nginx #waf #linux #docker #swarm #k8s #webui #cli #dnsblbeszel - легковесная платформа мониторинга серверов, которая включает в себя статистику Docker, исторические данные и функции оповещения.
Он имеет дружественный веб -интерфейс, простая конфигурация и готов к использованию из коробки. Он поддерживает автоматическое резервное копирование, многопользовательскую аутентификацию, аутентификацию OAuth и доступ API.
https://github.com/henrygd/beszel
опубликовано в #gitgate
#moni #docker #alert #webui #oauth #apiСтань DevOps Lead, руководи командой
Ищем опытного DevOps-инженера, готового взять на себя роль лидера и сформировать собственную команду. В KTS ты сможешь прокачать навыки проектирования архитектуры, коммуникации с заказчиками и управления людьми, работая над крупными проектами.
Отправляй свое резюме нашему эйчару, чтобы стать лидом!
Kompose - инструмент, который поможет пользователям, которые знакомы с Docker-Compose переехать в Kubernetes. Kompose умеет из обычного docker-compose.yml вайда конвертировать в манифесты для Kubernetes.
Kompose - это удобный инструмент, чтобы мигрировать из локального docker в приложение Kubernetes. Конвертация в манифест может быть не точной, но это очень помогает при первом развертывании приложения в Kubernetes.
https://github.com/kubernetes/kompose
опубликовано в #gitgate
#docker #docker-compose #manifest #k83 #convertermarkmap - визуализация markdown документов в виде mindmap
https://github.com/markmap/markmap
Демо: https://markmap.js.org/repl
Плагин для vscode: https://marketplace.visualstudio.com/items?itemName=gera2ld.markmap-vscode
опубликовано в #gitgate
#markdown #mindmap #visual #vscodeheadlamp - простой в использовании и расширяемое Web IDE интерфейс Kubernetes.
Headlamp был создан для сочетания традиционного набора функций других Web-UIs/Dashboards (то есть для перечисления и просмотра ресурсов) с добавленной функциональностью.
https://github.com/headlamp-k8s/headlamp
Подсказал: Михаил Исаев - @ismvru
опубликовано в #gitgate
#k8s #ide #web #guiВозможность для всех, кто работает с Linux и хочет прокачаться.
K2 Cloud запускает программу обучения: погружение в DevOps + прокачка в Linux. Если пройдешь на программу — трудоустраивают и платят зарплату, пока учишься. Обучение с практикой, лабораторными и под контролем экспертов из K2 Cloud.
Курс проходит онлайн, в Москве можно учиться гибридно с посещением офиса.
Подробности тут.
nginx-tuning - пример настроек nginx / angie под большие нагрузки
Как правило, правильно настроенный NGINX может обрабатывать до 400 тыс. До 500 тыс. запросов в секунду (кластерный). Большинство то, что я видел, составляет от 50 до 80 тыс. (Не кластеризованные) запросов в секунду и 30% нагрузки на CPU, конечно, это было 2 x Intel Xeon с включенным HyperThreading, но это может работать без проблем на более медленных машинах.
Вы должны понимать, что эта конфигурация используется в среде тестирования, а не в производстве, поэтому вам нужно будет вдумчиво и с пониманием пытаться реализовать большинство из этих функций с учетом потребностей ваших сервисов.
Отдельную ценность представляют ссылочки в конце описания репки.
https://github.com/denji/nginx-tuning
опубликовано в #gitgate
#nginx #performance #highload #tuning☁️ Безопасность CI/CD в разработке облака: опыт MWS
Как защитить процессы разработки облачной платформы, когда у тебя сотни разработчиков и огромная кодовая база? Инженеры МТС Web Services рассказывают о базовой гигиене DevSecOps на примере GitLab CI/CD. Подробнее читайте в статье по ссылке в хабе «Разработка облачных платформ» на Хабре.
➡️ Читать статью
Там же найдёте и другие статьи, которые детальнее рассказывают, как мы строим c нуля облако MWS.
📍 Подписаться на хаб
kubectl node-shell - простой скрипт обертка для запуска root shell на узлах кластера. (ранее известный как Kubectl Enter).
Удобно если прописать алиасом.
https://github.com/kvaps/kubectl-node-shell
Подсказал: Max Zotov - @sf1nk5
опубликовано в #gitgate
#k8s #shell #kubectlJet Pilot - k8s IDE с открытым исходным кодом. Он был создан из-за разочарования, так как все «красивые» k8s IDE стали коммерческими.
Продвинутые пользователи в настоящее время прибегают к таким инструментам, как k9s, которые отлично работают, но в значительной степени полагаются на ввод клавиатуры. Jet Pilot пытается преодолеть эти проблемы использования.
Возможности:
- журналы в реальном времени: мгновенный доступ к журналам для активного мониторинга рабочих нагрузок Kubernetes.
- kubernetes: управление объектами: легко управлять объектами k8s, описывать объекты или редактировать их напрямую.
- pod shell: быстро запускайте шелл внутри ваших контейнеров
- интерфейс: удобный интерфейс с настраиваемыми ярлыками для эффективной навигации и работы.
https://github.com/unxsist/jet-pilot
Подсказал: Max Zotov - @sf1nk5
опубликовано в #gitgate
#k8s #ideSeabird - Kubernetes IDE, предназначенный для GNOME desktop.
Наблюдайте и управляйте своими кластерами с помощью простого и интуитивно понятного интерфейса. Оснащен важными функциями, такими как терминал для выполнения команд, мониторинг через журналы и метрики, а также редактор ресурсов, который удобно помещает ссылку API под рукой.
https://github.com/getseabird/seabird
Полсказал: @CyberManiac
опубликовано в #gitgate
#k8s #ide #gnomefreelensapp - еще один форк от Lens, только бинарные сборки. Наверное просто до кучи, ну или если чем то OpenLens не понравится.
https://freelensapp.github.io/
Подсказал: Max Zotov - @sf1nk5
опубликовано в #gitgate
#k8s #ide #lens #alternative