DevOps
8.76K subscribers
1.39K photos
884 videos
28 files
1.75K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Что вы знаете Ingress и как она работает?

Ingress в Kubernetes — это API-объект, который предоставляет правила маршрутизации внешнего трафика (HTTP и HTTPS) к сервисам внутри кластера. Это позволяет управлять доступом к различным сервисам через единый внешний IP или DNS-имя, упрощая процесс маршрутизации и балансировки нагрузки.

🟢Основные компоненты и принципы работы:


1. Ingress-объект:
- Определяет правила маршрутизации.
- Включает пути (routes), соответствующие сервисам внутри кластера.
- Поддерживает перенаправление HTTP -> HTTPS, управление хостами, а также балансировку нагрузки.

2. Ingress-контроллер:
- Специальный компонент, который обрабатывает объекты Ingress и обеспечивает их работу.
- Наиболее популярные контроллеры:
- NGINX Ingress Controller
- Traefik
- HAProxy
- AWS ALB Ingress Controller

3. Как работает:
- Внешний пользователь отправляет HTTP/HTTPS-запрос.
- Запрос поступает на внешний IP-адрес, связанный с Ingress-контроллером.
- Контроллер анализирует правила Ingress и маршрутизирует запрос к нужному сервису.
- Ответ от сервиса передается обратно пользователю через тот же маршрут.

🟢Пример конфигурации Ingress:


apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80


🟢Преимущества:
- Упрощенная маршрутизация: Один внешний IP-адрес для доступа к множеству сервисов.
- Поддержка SSL/TLS: Возможность обеспечения безопасного соединения.
- Балансировка нагрузки: Распределение трафика между экземплярами приложения.

🟢Использование Ingress:
Ingress удобен для публичных приложений с веб-интерфейсом, где требуется организовать доступ через доменные имена и безопасные соединения.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Пять GitHub проектов, которые помогут вам стать лучшим инженером DevOps

1. How they SRE

Подборка общедоступных ресурсов о том, как технологические и технически подкованные организации по всему миру практикуют Site Reliability Engineering (SRE).

https://github.com/upgundecha/howtheysre

2. Awesome Scalability

Паттерны масштабируемых, надежных и производительных крупномасштабных систем

https://github.com/binhnguyennus/awesome-scalability

3. DevOps Exercises

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. Вопросы для интервью по DevOps

https://github.com/bregman-arie/devops-exercises

4. Test your sysadmin skills

Сборник тестовых вопросов и ответов по Linux Sysadmin. Проверьте свои знания и навыки в различных областях с помощью этих вопросов и ответов.

https://github.com/trimstray/test-your-sysadmin-skills

5. Awesome Site Reliability Engineering

Составленный список ресурсов по надежности сайта и производственному инжинирингу.

https://github.com/dastergon/awesome-sre

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Kubernetes дома? Ты не в себе? Как с Cursor и без DevOps-опыта поднять приватный кластер для личных проектов

Я реализовал свою первую задачу по замене «Яндекс Диска», довёл скорость до 1,1 ГБ/с и пошёл дальше — установил Kubernetes дома. Я не инженер DevOps, но на своём кластере из старых Mac mini я запустил полноценный K8s с Managed Services.

https://habr.com/ru/companies/flant/articles/1043430/

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Как можно контролировать использование ресурсов в POD?

В Kubernetes контроль использования ресурсов в Pod осуществляется через механизмы запросов (requests) и лимитов (limits), которые задаются для контейнеров в манифестах Pod'ов. Это позволяет управлять доступом к вычислительным ресурсам (CPU и память) и предотвращать чрезмерное потребление, которое может повлиять на работу кластера.

Основные способы контроля:

1. Запросы (Requests):
- Указывают минимальный объем ресурсов, который необходим контейнеру для работы.
- Kubernetes использует эту информацию для планирования Pod'ов на узлах (nodes), гарантируя, что на узле достаточно ресурсов для Pod'а.

Пример:

resources:
requests:
memory: "256Mi"
cpu: "500m"


2. Лимиты (Limits):
- Устанавливают максимальный объем ресурсов, который контейнер может использовать.
- Если контейнер превышает лимит памяти, он будет завершен. Если превышен лимит CPU, его использование будет ограничено (throttled).

Пример:

resources:
limits:
memory: "512Mi"
cpu: "1"


3. Комбинированное использование запросов и лимитов:
- Обычно рекомендуется задавать оба параметра для каждой нагрузки, чтобы обеспечить баланс между производительностью и безопасностью.
- Пример:

resources:
requests:
memory: "256Mi"
cpu: "500m"
limits:
memory: "512Mi"
cpu: "1"


4. Использование ResourceQuota:
- Устанавливает ограничения на объем ресурсов, которые могут использоваться на уровне namespace.
- Пример:

apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
namespace: example-namespace
spec:
hard:
requests.cpu: "4"
requests.memory: "8Gi"
limits.cpu: "10"
limits.memory: "16Gi"


5. LimitRange:
- Определяет минимальные/максимальные запросы и лимиты для Pod'ов и контейнеров в namespace.
- Пример:

apiVersion: v1
kind: LimitRange
metadata:
name: mem-cpu-limits
namespace: example-namespace
spec:
limits:
- default:
cpu: "1"
memory: "512Mi"
defaultRequest:
cpu: "500m"
memory: "256Mi"
type: Container


Мониторинг использования ресурсов:
- Используйте встроенные метрики Kubernetes через kubectl top:

kubectl top pod --namespace=<namespace>
kubectl top node

- Интеграция с инструментами наблюдаемости, такими как Prometheus, Grafana или Kubernetes Dashboard, для анализа метрик ресурсов в реальном времени.

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Короткий совет по Linux 💡

Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:

$ find . -type d -empty -exec rmdir -v {} +

Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.

Команда rmdir гарантирует, что каталог пуст перед его удалением.

В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:

$ find . -type d -empty -delete


📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly

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

https://github.com/lirantal/dockly

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Atuin

Это инструмент для улучшения истории командной строки, заменяющий стандартную историю оболочки. Он сохраняет команды в зашифрованной базе данных, синхронизирует историю между устройствами и позволяет легко искать и фильтровать команды. Atuin поддерживает bash, zsh и fish, обеспечивая удобство работы с историей в терминале.

https://github.com/atuinsh/atuin

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
This media is not supported in your browser
VIEW IN TELEGRAM
Walk — это инструмент на Go, который позволяет рекурсивно обходить директории и выполнять команды для каждого найденного файла или папки.

📌 Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.

🔗 Репозиторий: https://github.com/antonmedv/walk

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
ROT: автоматизация обновления ключей и секретов

Если вы когда-либо сталкивались с задачей периодической ротации ключей, токенов или паролей в ваших проектах, обратите внимание на ROT.

Что это такое?
ROT — это удобный инструмент с открытым исходным кодом, написанный на Go, который помогает управлять ротацией секретов и конфигурационных данных. Он берёт на себя регулярное обновление ваших ключей, упрощая процесс автоматизации и сокращая риск человеческих ошибок.

Ключевые возможности:
• Работа с различными секретными хранилищами и источниками данных.
• Гибкая настройка частоты ротации и условий обновления.
• Прозрачная интеграция в существующие CI/CD-пайплайны.
• Упрощение DevOps-практик за счёт централизованного управления секретами.

Кому будет полезно?
Разработчикам, DevOps-инженерам, администраторам и всем, кто работает с конфиденциальной информацией в облачных и локальных инфраструктурах. ROT упрощает управление жизненным циклом ваших секретов, повышая безопасность и удобство.


https://github.com/candiddev/rot

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
PR-Agent — это инструмент с открытым исходным кодом для автоматического анализа Pull Request'ов. Этот агент интегрируется с GitHub и помогает разработчикам ускорить процесс ревью, автоматически генерируя полезные комментарии, улучшая качество кода и экономя время.

Особенности PR-Agent:
- Анализ кода: автоматически обнаруживает проблемы и предлагает улучшения.
- Интеграция с GitHub: работает с вашим репозиторием без дополнительных сложностей.
- Поддержка нескольких языков: подходит для проектов на разных языках программирования.

Проект активно развивается и доступен для бесплатного использования. Установить его можно через Docker или напрямую из репозитория.

https://github.com/Codium-ai/pr-agent

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Как организовать безопасное хранение секретов в Docker: лучшие практики

Секреты — это такая щекотливая тема, из‑за которой у безопасников начинаются нервные подёргивания глаза. Вроде бы «просто пароль» или «просто токен», но в 2025 году мы уже знаем, что просто в безопасности — это верная дорога к утечкам и ночным обкаткам плана B. В этой статье поговорим, как правильно хранить секреты в Docker‑контейнерах и окрестностях, а заодно разберёмся, чем могут помочь Docker Secrets, HashiCorp Vault и компания.

https://habr.com/ru/articles/872128/

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
«РБПО для бедных»: сказ о том, как стартап безопасность прикручивал

Сказка — ложь, да в ней намек, разработчикам урок.

В некотором опенспейсе, в некотором коворкинге завелся один стартап. С кофе-машиной, горящими дедлайнами и вечными созвонами. Решили там сделать ПОшечку невиданную — чтобы пользователи радовались, инвесторы кивали одобрительно, а деньги сами шли в кассу.

И закипела работа, и стартовали один за другим спринты. Фичи выкатывались, метрики росли, разработчики героически коммитили по ночам. Вот только о безопасности в стартапе вспоминали примерно никогда. Некому было охранять секреты пользовательские, деньги виртуальные да API-ключи заветные. А хранилось всё это, прямо скажем, не самым надежным образом.

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

Позвали тогда богатыря бывалого — эксперта по безопасной разработке. Ну, то есть меня. И попросили научить разработчиков код проверять, секреты хранить да конвейеры защищенные строить. В общем, построить РБПО, но без бюджетов размером с ВВП сказочного государства.

Так появился этот цикл статей — про то, как собрать на коленке минимальный, но рабочий конвейер безопасной разработки.

Долго сказка сказывается, да только CI/CD-пайплайн собирается еще дольше. Так что устраивайтесь поудобнее — расскажу, как строил «РБПО для бедных».

https://habr.com/ru/companies/bastion/articles/1038686/

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3
Docker для начинающих: что это такое и как пользоваться

Статей про Docker много не бывает.

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

https://habr.com/ru/companies/netologyru/articles/967546/

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
📂 Быстрое создание структуры директорий в Linux

Иногда нужно быстро создать целую структуру папок. Вручную - долго. На помощь приходит mkdir с флагом -p:


mkdir -p /var/www/project/{css,js,images,fonts}


Этот однострочник создаст папки css, js, images, fonts внутри /var/www/project, даже если родительские директории ещё не существуют.

Фишка: можно создавать вложенные структуры сразу:


mkdir -p /opt/data/{logs/{nginx,mysql},backups/{daily,weekly}}


Это создаст:
- /opt/data/logs/nginx
- /opt/data/logs/mysql
- /opt/data/backups/daily
- /opt/data/backups/weekly


Полезно, если нужно быстро подготовить окружение для проекта 🚀

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
💡Local Path Provisioner — это удобное решение для предоставления локального хранилища в Kubernetes-кластерах. Оно позволяет пользователям создавать PersistentVolume на узлах с использованием локального хранилища.

Основные преимущества:
- Простая настройка и использование.
- Гибкость в указании путей для хранения.
- Отличный выбор для разработки и тестирования.


https://github.com/rancher/local-path-provisioner/tree/master

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как работают контейнеры: создаём Docker-подобный контейнер с нуля 🛠️

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

https://labs.iximiuz.com/tutorials/container-filesystem-from-scratch

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Deckhouse Prom++: как мы сжали разметку метрик Prometheus и снизили расход памяти в 2,5 раза с помощью статистики данных

Хотели избежать копирования данных, придумали свою служебную разметку, а потом обнаружили: она занимает почти столько же места, сколько сам исходный текст. Мы перестали гадать, посмотрели на реальные данные и применили простые, но эффективные подходы: числа переменной длины, отказ от double в пользу целых типов и умные if-else вместо switch.

Итог: мы сжали разметку в 2,5 раза и при этом даже немного выиграли в скорости. Рассказываем, как знание предметной области помогло нам не усложнять код, а сделать его быстрее и легче.

https://habr.com/ru/companies/flant/articles/1048018/

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Какая роль у контроллера DaemonSet?

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

1. Запуск подов на каждом узле
- DaemonSet гарантирует, что на каждом узле кластера будет запущен экземпляр указанного пода.
- Это полезно для задач, которые должны выполняться на каждом узле, например:
- Сбор логов (например, Fluentd, Logstash).
- Мониторинг (например, Prometheus Node Exporter).
- Сетевые плагины (например, Calico, Weave).
- Хранение данных (например, распределённые хранилища).

2. Автоматическое добавление подов при добавлении новых узлов
- Когда в кластер добавляется новый узел, DaemonSet автоматически создаёт на нём под.
- Это обеспечивает согласованность и автоматизацию развёртывания.

3. Удаление подов при удалении узлов
- Если узел удаляется из кластера, DaemonSet автоматически удаляет под, связанный с этим узлом.

4. Поддержка селекторов и толерантностей
- DaemonSet позволяет использовать селекторы для выбора узлов, на которых будут запускаться поды.
- Также можно использовать толерантности (tolerations), чтобы разрешить запуск подов на узлах с определёнными метками (например, на узлах с taint node-role.kubernetes.io/master).

5. Обновление и управление подами
- DaemonSet поддерживает стратегии обновления (например, RollingUpdate или OnDelete), что позволяет обновлять поды на узлах с минимальным простоем.
- Контроллер следит за состоянием подов и обеспечивает их корректную работу.


Примеры использования DaemonSet:
- Сетевые плагины: Запуск сетевых агентов на каждом узле для обеспечения сетевой связности.
- Мониторинг: Запуск агентов сбора метрик (например, Prometheus Node Exporter) на каждом узле.
- Логирование: Запуск агентов сбора логов (например, Fluentd) на каждом узле.
- Хранение данных: Запуск компонентов распределённых хранилищ (например, Ceph, GlusterFS).

Отличие DaemonSet от других контроллеров:
- Deployment: Запускает определённое количество реплик подов, которые могут быть распределены по любым узлам.
- StatefulSet: Управляет подами с устойчивыми идентификаторами и хранилищем.
- DaemonSet: Запускает по одному поду на каждом узле (или на подмножестве узлов).


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

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
Шпаргалка по Git для разработчиков и инженеров DevOps

📲 Мы в MAX

#devops #девопс

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1🏆1