Что вы знаете 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:
🟢Преимущества:
- Упрощенная маршрутизация: Один внешний IP-адрес для доступа к множеству сервисов.
- Поддержка SSL/TLS: Возможность обеспечения безопасного соединения.
- Балансировка нагрузки: Распределение трафика между экземплярами приложения.
🟢Использование Ingress:
Ingress удобен для публичных приложений с веб-интерфейсом, где требуется организовать доступ через доменные имена и безопасные соединения.
#devops #девопс
📲 Мы в MAX
Подпишись 👉@i_DevOps
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 #девопс
Подпишись 👉@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
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
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Kubernetes дома? Ты не в себе? Как с Cursor и без DevOps-опыта поднять приватный кластер для личных проектов
Я реализовал свою первую задачу по замене «Яндекс Диска», довёл скорость до 1,1 ГБ/с и пошёл дальше — установил Kubernetes дома. Я не инженер DevOps, но на своём кластере из старых Mac mini я запустил полноценный K8s с Managed Services.
https://habr.com/ru/companies/flant/articles/1043430/
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Я реализовал свою первую задачу по замене «Яндекс Диска», довёл скорость до 1,1 ГБ/с и пошёл дальше — установил Kubernetes дома. Я не инженер DevOps, но на своём кластере из старых Mac mini я запустил полноценный K8s с Managed Services.
https://habr.com/ru/companies/flant/articles/1043430/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Как можно контролировать использование ресурсов в POD?
В Kubernetes контроль использования ресурсов в Pod осуществляется через механизмы запросов (requests) и лимитов (limits), которые задаются для контейнеров в манифестах Pod'ов. Это позволяет управлять доступом к вычислительным ресурсам (CPU и память) и предотвращать чрезмерное потребление, которое может повлиять на работу кластера.
Основные способы контроля:
1. Запросы (Requests):
- Указывают минимальный объем ресурсов, который необходим контейнеру для работы.
- Kubernetes использует эту информацию для планирования Pod'ов на узлах (nodes), гарантируя, что на узле достаточно ресурсов для Pod'а.
Пример:
2. Лимиты (Limits):
- Устанавливают максимальный объем ресурсов, который контейнер может использовать.
- Если контейнер превышает лимит памяти, он будет завершен. Если превышен лимит CPU, его использование будет ограничено (throttled).
Пример:
3. Комбинированное использование запросов и лимитов:
- Обычно рекомендуется задавать оба параметра для каждой нагрузки, чтобы обеспечить баланс между производительностью и безопасностью.
- Пример:
4. Использование ResourceQuota:
- Устанавливает ограничения на объем ресурсов, которые могут использоваться на уровне namespace.
- Пример:
5. LimitRange:
- Определяет минимальные/максимальные запросы и лимиты для Pod'ов и контейнеров в namespace.
- Пример:
Мониторинг использования ресурсов:
- Используйте встроенные метрики Kubernetes через kubectl top:
- Интеграция с инструментами наблюдаемости, такими как Prometheus, Grafana или Kubernetes Dashboard, для анализа метрик ресурсов в реальном времени.
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
В 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, для анализа метрик ресурсов в реальном времени.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Короткий совет по Linux 💡
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete#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
Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.
https://github.com/lirantal/dockly
#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
Это инструмент для улучшения истории командной строки, заменяющий стандартную историю оболочки. Он сохраняет команды в зашифрованной базе данных, синхронизирует историю между устройствами и позволяет легко искать и фильтровать команды. Atuin поддерживает bash, zsh и fish, обеспечивая удобство работы с историей в терминале.
https://github.com/atuinsh/atuin
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Walk — это инструмент на Go, который позволяет рекурсивно обходить директории и выполнять команды для каждого найденного файла или папки.
📌 Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.
🔗 Репозиторий: https://github.com/antonmedv/walk
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
📌 Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.
🔗 Репозиторий: https://github.com/antonmedv/walk
#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
Если вы когда-либо сталкивались с задачей периодической ротации ключей, токенов или паролей в ваших проектах, обратите внимание на ROT.
Что это такое?
ROT — это удобный инструмент с открытым исходным кодом, написанный на Go, который помогает управлять ротацией секретов и конфигурационных данных. Он берёт на себя регулярное обновление ваших ключей, упрощая процесс автоматизации и сокращая риск человеческих ошибок.
Ключевые возможности:
• Работа с различными секретными хранилищами и источниками данных.
• Гибкая настройка частоты ротации и условий обновления.
• Прозрачная интеграция в существующие CI/CD-пайплайны.
• Упрощение DevOps-практик за счёт централизованного управления секретами.
Кому будет полезно?
Разработчикам, DevOps-инженерам, администраторам и всем, кто работает с конфиденциальной информацией в облачных и локальных инфраструктурах. ROT упрощает управление жизненным циклом ваших секретов, повышая безопасность и удобство.
https://github.com/candiddev/rot
#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
Особенности PR-Agent:
- Анализ кода: автоматически обнаруживает проблемы и предлагает улучшения.
- Интеграция с GitHub: работает с вашим репозиторием без дополнительных сложностей.
- Поддержка нескольких языков: подходит для проектов на разных языках программирования.
Проект активно развивается и доступен для бесплатного использования. Установить его можно через Docker или напрямую из репозитория.
https://github.com/Codium-ai/pr-agent
#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
Секреты — это такая щекотливая тема, из‑за которой у безопасников начинаются нервные подёргивания глаза. Вроде бы «просто пароль» или «просто токен», но в 2025 году мы уже знаем, что просто в безопасности — это верная дорога к утечкам и ночным обкаткам плана B. В этой статье поговорим, как правильно хранить секреты в Docker‑контейнерах и окрестностях, а заодно разберёмся, чем могут помочь Docker Secrets, HashiCorp Vault и компания.
https://habr.com/ru/articles/872128/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
«РБПО для бедных»: сказ о том, как стартап безопасность прикручивал
Сказка — ложь, да в ней намек, разработчикам урок.
В некотором опенспейсе, в некотором коворкинге завелся один стартап. С кофе-машиной, горящими дедлайнами и вечными созвонами. Решили там сделать ПОшечку невиданную — чтобы пользователи радовались, инвесторы кивали одобрительно, а деньги сами шли в кассу.
И закипела работа, и стартовали один за другим спринты. Фичи выкатывались, метрики росли, разработчики героически коммитили по ночам. Вот только о безопасности в стартапе вспоминали примерно никогда. Некому было охранять секреты пользовательские, деньги виртуальные да API-ключи заветные. А хранилось всё это, прямо скажем, не самым надежным образом.
На ту беду нашлись хакеры с купленным эксплойтом, и наступили у стартапа времена невеселые. Третьи точки горели, базы данных утекали, пользователи разбегались, а данные разлетались по самым темным уголкам интернета.
Позвали тогда богатыря бывалого — эксперта по безопасной разработке. Ну, то есть меня. И попросили научить разработчиков код проверять, секреты хранить да конвейеры защищенные строить. В общем, построить РБПО, но без бюджетов размером с ВВП сказочного государства.
Так появился этот цикл статей — про то, как собрать на коленке минимальный, но рабочий конвейер безопасной разработки.
Долго сказка сказывается, да только CI/CD-пайплайн собирается еще дольше. Так что устраивайтесь поудобнее — расскажу, как строил «РБПО для бедных».
https://habr.com/ru/companies/bastion/articles/1038686/
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Сказка — ложь, да в ней намек, разработчикам урок.
В некотором опенспейсе, в некотором коворкинге завелся один стартап. С кофе-машиной, горящими дедлайнами и вечными созвонами. Решили там сделать ПОшечку невиданную — чтобы пользователи радовались, инвесторы кивали одобрительно, а деньги сами шли в кассу.
И закипела работа, и стартовали один за другим спринты. Фичи выкатывались, метрики росли, разработчики героически коммитили по ночам. Вот только о безопасности в стартапе вспоминали примерно никогда. Некому было охранять секреты пользовательские, деньги виртуальные да API-ключи заветные. А хранилось всё это, прямо скажем, не самым надежным образом.
На ту беду нашлись хакеры с купленным эксплойтом, и наступили у стартапа времена невеселые. Третьи точки горели, базы данных утекали, пользователи разбегались, а данные разлетались по самым темным уголкам интернета.
Позвали тогда богатыря бывалого — эксперта по безопасной разработке. Ну, то есть меня. И попросили научить разработчиков код проверять, секреты хранить да конвейеры защищенные строить. В общем, построить РБПО, но без бюджетов размером с ВВП сказочного государства.
Так появился этот цикл статей — про то, как собрать на коленке минимальный, но рабочий конвейер безопасной разработки.
Долго сказка сказывается, да только CI/CD-пайплайн собирается еще дольше. Так что устраивайтесь поудобнее — расскажу, как строил «РБПО для бедных».
https://habr.com/ru/companies/bastion/articles/1038686/
#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
Статей про Docker много не бывает.
В этом материале мы разберём базу: что такое Docker, как он работает и зачем нужен, а затем пошагово пройдём путь от установки до запуска первого контейнера.
https://habr.com/ru/companies/netologyru/articles/967546/
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
📂 Быстрое создание структуры директорий в Linux
Иногда нужно быстро создать целую структуру папок. Вручную - долго. На помощь приходит mkdir с флагом -p:
✅ Этот однострочник создаст папки css, js, images, fonts внутри /var/www/project, даже если родительские директории ещё не существуют.
Фишка: можно создавать вложенные структуры сразу:
Это создаст:
Полезно, если нужно быстро подготовить окружение для проекта 🚀
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Иногда нужно быстро создать целую структуру папок. Вручную - долго. На помощь приходит 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Полезно, если нужно быстро подготовить окружение для проекта 🚀
#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
Основные преимущества:
- Простая настройка и использование.
- Гибкость в указании путей для хранения.
- Отличный выбор для разработки и тестирования.
https://github.com/rancher/local-path-provisioner/tree/master
#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
Одна из самых подробно исследованных работ о контейнерах, которые я писал на данный момент. Узнайте, как создать реалистичный контейнер уровня Docker, используя только стандартные команды Linux.
https://labs.iximiuz.com/tutorials/container-filesystem-from-scratch
#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
Хотели избежать копирования данных, придумали свою служебную разметку, а потом обнаружили: она занимает почти столько же места, сколько сам исходный текст. Мы перестали гадать, посмотрели на реальные данные и применили простые, но эффективные подходы: числа переменной длины, отказ от double в пользу целых типов и умные if-else вместо switch.
Итог: мы сжали разметку в 2,5 раза и при этом даже немного выиграли в скорости. Рассказываем, как знание предметной области помогло нам не усложнять код, а сделать его быстрее и легче.
https://habr.com/ru/companies/flant/articles/1048018/
#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
5. Обновление и управление подами
- DaemonSet поддерживает стратегии обновления (например, RollingUpdate или OnDelete), что позволяет обновлять поды на узлах с минимальным простоем.
- Контроллер следит за состоянием подов и обеспечивает их корректную работу.
Примеры использования DaemonSet:
- Сетевые плагины: Запуск сетевых агентов на каждом узле для обеспечения сетевой связности.
- Мониторинг: Запуск агентов сбора метрик (например, Prometheus Node Exporter) на каждом узле.
- Логирование: Запуск агентов сбора логов (например, Fluentd) на каждом узле.
- Хранение данных: Запуск компонентов распределённых хранилищ (например, Ceph, GlusterFS).
Отличие DaemonSet от других контроллеров:
- Deployment: Запускает определённое количество реплик подов, которые могут быть распределены по любым узлам.
- StatefulSet: Управляет подами с устойчивыми идентификаторами и хранилищем.
- DaemonSet: Запускает по одному поду на каждом узле (или на подмножестве узлов).
Таким образом, роль контроллера DaemonSet заключается в обеспечении запуска и поддержания определённого пода на каждом узле кластера, что делает его идеальным инструментом для задач, которые должны выполняться на всех узлах.
📲 Мы в MAX
#devops #девопс
Подпишись 👉@i_DevOps
Контроллер 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 заключается в обеспечении запуска и поддержания определённого пода на каждом узле кластера, что делает его идеальным инструментом для задач, которые должны выполняться на всех узлах.
#devops #девопс
Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1