Как предотвратить OOMKiiled в k8s?
В мире Kubernetes ошибки «OOMKilled» (Out of Memory Killed) возникают, когда приложение превышает выделенные ему ресурсы памяти, что приводит к его завершению системой. Для предотвращения таких ситуаций Kubernetes использует механизм классов качества обслуживания (QoS), который помогает эффективно управлять ресурсами и обеспечивать стабильную работу приложений.
🛠Классы QoS в Kubernetes:
➖ Guaranteed (Гарантированный): Присваивается подам, у которых для всех контейнеров установлены одинаковые значения запросов и лимитов ресурсов.
➖ Burstable (С переменной нагрузкой): Присваивается подам, у которых запросы ресурсов меньше установленных лимитов.
➖ Best-Effort (По остаточному принципу): Присваивается подам без указанных запросов и лимитов ресурсов.
Эти классы позволяют Kubernetes приоритизировать рабочие нагрузки при дефиците ресурсов, обеспечивая критически важным приложениям необходимые ресурсы.
⚡️ Причины возникновения ошибок OOMKilled:
➖ Неопределенные лимиты ресурсов: контейнеры потребляют больше ресурсов, чем предполагалось.
➖ Переизбыток ресурсов: несколько подов конкурируют за ограниченные ресурсы.
➖ Утечки памяти: неэффективная разработка приложений, приводящая к постепенному увеличению потребления памяти.
Без правильной настройки QoS повышается риск исчерпания ресурсов и возникновения ошибок OOMKilled.
❓ Как QoS предотвращает ошибки OOMKilled:
➖ Приоритизация подов: подам с классом Guaranteed присваивается наивысший приоритет, за ними следуют Burstable и Best-Effort.
➖ Предотвращение переизбытка ресурсов: QoS гарантирует, что запросы ресурсов соответствуют доступной емкости, снижая риск перегрузки.
➖ Гибкое управление ресурсами: при нехватке памяти сначала выселяются поды с более низким приоритетом, защищая критически важные приложения.
💡 Рекомендации по настройке QoS для предотвращения ошибок OOMKilled:
➖ Установите запросы и лимиты ресурсов: всегда указывайте запросы и лимиты ресурсов в конфигурации подов.
➖ Проверяйте класс QoS подов: после развертывания убедитесь в правильности присвоенного класса QoS с помощью команды:
➖ Тестируйте распределение ресурсов: симулируйте высоконагруженные сценарии, чтобы наблюдать поведение подов и убедиться в корректной работе настроек QoS.
В мире Kubernetes ошибки «OOMKilled» (Out of Memory Killed) возникают, когда приложение превышает выделенные ему ресурсы памяти, что приводит к его завершению системой. Для предотвращения таких ситуаций Kubernetes использует механизм классов качества обслуживания (QoS), который помогает эффективно управлять ресурсами и обеспечивать стабильную работу приложений.
🛠Классы QoS в Kubernetes:
Эти классы позволяют Kubernetes приоритизировать рабочие нагрузки при дефиците ресурсов, обеспечивая критически важным приложениям необходимые ресурсы.
Без правильной настройки QoS повышается риск исчерпания ресурсов и возникновения ошибок OOMKilled.
kubectl get pod <имя-пода> -o jsonpath='{.status.qosClass}'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👏1🎉1
В мире, где веб-сайты становятся всё более "тяжёлыми" из-за бесконечных скриптов, огромных изображений и множества сторонних библиотек, появляются те, кто стремится к обратному — лёгкости и эффективности. И 512KB Club — яркий пример этого подхода.
Это сообщество веб-сайтов, которые доказывают, что скорость, простота и функциональность могут идти рука об руку. Участники клуба создают сайты, размер ресурсов которых (включая HTML, CSS, JS, изображения и шрифты) не превышает 512 килобайт. Для сравнения, это меньше, чем средний размер одного современного изображения на сайте.
Категории сайта:
🟢Green Team (<100 КБ): Сайты-чемпионы минимализма. Они невероятно лёгкие и загружаются мгновенно.
🟠Orange Team (<250 КБ): Оптимизированные ресурсы, которые остаются удобными для пользователей.
🔵Blue Team (<512 КБ): Участники, которые всё ещё остаются в рамках заданного лимита, но добавляют больше функциональности или контента.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👏6
🪲🐞Ошибка вторника
Если вы когда-нибудь сталкивались с багами, которые кажутся странными и необъяснимыми, то эта история — ваш идеальный пример. В 2008 году на платформе Launchpad была зарегистрирована необычная проблема: OpenOffice отказывался печатать документы…исключительно по вторникам .
❓ Что случилось?
Проблема была связана с печатью через OpenOffice на некоторых системах Linux. Документы, отправленные на принтер по вторникам, просто не доходили до своей цели. Остальные дни недели проблем не вызывали. Звучит как сюжет научной фантастики, но баг был вполне реальным.
⁉️В чем причина?
Оказалось, что виновата строка %%CreationDate в PostScript-файлах, создаваемых OpenOffice. Если дата создания документа указывала вторник, то строка выглядела так:
При обработке этого файла утилита file неправильно определяла его тип, считая, что это не PostScript, а что-то другое. Это приводило к сбоям на уровне обработки печати.
Если вы когда-нибудь сталкивались с багами, которые кажутся странными и необъяснимыми, то эта история — ваш идеальный пример. В 2008 году на платформе Launchpad была зарегистрирована необычная проблема: OpenOffice отказывался печатать документы…
Проблема была связана с печатью через OpenOffice на некоторых системах Linux. Документы, отправленные на принтер по вторникам, просто не доходили до своей цели. Остальные дни недели проблем не вызывали. Звучит как сюжет научной фантастики, но баг был вполне реальным.
⁉️В чем причина?
Оказалось, что виновата строка %%CreationDate в PostScript-файлах, создаваемых OpenOffice. Если дата создания документа указывала вторник, то строка выглядела так:
%%CreationDate: (Tue ...)
При обработке этого файла утилита file неправильно определяла его тип, считая, что это не PostScript, а что-то другое. Это приводило к сбоям на уровне обработки печати.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6
🐳✏️ #Гайд по контейнеризации Django от Docker
В блоге Docker появился новый гайд, который подробно объясняет, как контейнеризировать Django-приложение. Этот пошаговый туториал покажет вам:
✅ Как настроить Dockerfile для вашего проекта.
✅ Использовать docker-compose для управления сервисами.
✅ Оптимизировать приложение для продакшена с Gunicorn и сборкой статических файлов.
Если вы хотите упростить развертывание Django-приложений и минимизировать проблемы с совместимостью окружений, этот гайд станет отличным подспорьем.
В блоге Docker появился новый гайд, который подробно объясняет, как контейнеризировать Django-приложение. Этот пошаговый туториал покажет вам:
Если вы хотите упростить развертывание Django-приложений и минимизировать проблемы с совместимостью окружений, этот гайд станет отличным подспорьем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
scp (Secure Copy Protocol) — это инструмент для безопасного копирования файлов между локальной и удалённой машинами или между двумя удалёнными хостами. Он использует SSH для шифрования данных, что делает передачу файлов защищённой.
Cинтаксис команды:
scp [опции] источник цель
-r: Рекурсивное копирование каталогов.
-C: Сжатие данных.
-P [порт]: Указание порта SSH.
-i [ключ]: Использование приватного ключа.
Примеры:
scp file.txt user@remote_host:/path/to/destination/
scp user@remote_host:/path/to/file.txt /local/path/
scp -r /local/directory/ user@remote_host:/path/to/destination/
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍3💯2
🆚 Разница между SSL и TLS
Когда дело доходит до безопасности в интернете, термины SSL и TLS звучат повсюду: от HTTPS до VPN. Часто их используют как синонимы, но это не совсем правильно
Что такое SSL и TLS?
🔒 SSL (Secure Sockets Layer)
SSL – это первый широко применяемый протокол, созданный для безопасного обмена данными между клиентом (например, браузером) и сервером. Он обеспечивает:
➖ Шифрование данных.
➖ Проверку подлинности сервера (а иногда и клиента).
➖ Целостность передаваемых данных.
Первая версия SSL появилась в 1995 году, но она практически сразу была заменена на SSL 2.0, а затем SSL 3.0 в 1996 году. Однако SSL имел серьезные уязвимости, что привело к его постепенному отказу.
🔒 TLS (Transport Layer Security)
TLS – это улучшенная и безопасная версия SSL, созданная в 1999 году. Она устранила известные недостатки SSL и стала стандартом шифрования. Сегодня TLS используется в большинстве интернет-приложений, включая HTTPS, e-mail (SMTP, IMAP, POP3), VoIP и VPN.
Основные цели SSL/TLS
✅ Шифрование данных: протоколы предотвращают перехват и просмотр данных третьими лицами.
✅ Проверка подлинности: сертификаты помогают удостовериться, что вы подключаетесь к настоящему серверу, а не к поддельному.
✅ Целостность данных: механизмы защиты (например, HMAC) гарантируют, что данные не были изменены в процессе передачи.
Когда дело доходит до безопасности в интернете, термины SSL и TLS звучат повсюду: от HTTPS до VPN. Часто их используют как синонимы, но это не совсем правильно
Что такое SSL и TLS?
SSL – это первый широко применяемый протокол, созданный для безопасного обмена данными между клиентом (например, браузером) и сервером. Он обеспечивает:
Первая версия SSL появилась в 1995 году, но она практически сразу была заменена на SSL 2.0, а затем SSL 3.0 в 1996 году. Однако SSL имел серьезные уязвимости, что привело к его постепенному отказу.
TLS – это улучшенная и безопасная версия SSL, созданная в 1999 году. Она устранила известные недостатки SSL и стала стандартом шифрования. Сегодня TLS используется в большинстве интернет-приложений, включая HTTPS, e-mail (SMTP, IMAP, POP3), VoIP и VPN.
Основные цели SSL/TLS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Механизмы мониторинга событий – это инструменты и интерфейсы в операционных системах, которые позволяют приложениям эффективно отслеживать изменения состояния различных ресурсов. Это могут быть файлы, сетевые соединения, процессы, таймеры и другие объекты.
В многозадачных системах часто требуется знать, когда объект становится "готовым" к выполнению операций. Например:
Без механизмов мониторинга событий приложениям пришлось бы постоянно опрашивать ресурсы, чтобы узнать их состояние, что приводит к высоким накладным расходам на процессор.
Типы событий
Готовность сокетов для чтения или записи.
Закрытие соединений.
Изменения файлов или директорий.
Доступность данных для чтения или записи.
Уведомление о том, что истекло определенное время.
Завершение процессов или изменения их состояния.
Системные сигналы, отправленные процессам (например, SIGINT, SIGCHLD).
Разные операционные системы предлагают свои интерфейсы для мониторинга событий. Вот наиболее известные:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Мы ищем участников для интервью на тему «Обучение навыкам в IT»!
Кто нам нужен?
Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.
Уникальный шанс пообщаться с нашим CEO!
Как откликнуться?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1😁1
Neko – это open-source решение для удаленного доступа к браузеру. Представьте себе виртуальный браузер, который вы можете запустить на сервере, а затем использовать через свой обычный браузер.
Звучит странно? Давайте разберемся!
🚀 Где это полезно?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Docker представил экспериментальный AI-агент Gordon, предназначенный для упрощения и автоматизации работы с их инструментами. Эта разработка открывает новые возможности для как новичков, только начинающих работать с Docker, так и для профессионалов, стремящихся повысить свою эффективность.
Gordon — это часть инициативы Docker Labs по внедрению генеративного искусственного интеллекта. Его разработка отражает растущий интерес к интеграции AI в инструменты DevOps и открывает двери для новых возможностей.
#новость
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Книга — это подробное руководство по использованию одного из наиболее перспективных инструментов мониторинга и трассировки систем. OpenTelemetry объединяет метрики, логи и трассировки в единую систему, предоставляя универсальное решение для наблюдаемости современных распределенных систем.
Данная книга представляет собой подробное введение в ядро Linux. Прочитав ее, вы получите достаточные теоретические знания о внутренних механизмах ядра и практические навыки написания кода модулей. Изложение ведется на примере ядра версии 6.1 LTS, поддержка которого предполагается до августа 2033 года, что обеспечивает актуальность материала на долгие годы.
Данная книга раскрывает потенциал Kubernetes — самой популярной платформы оркестровки контейнеров в мире. Вы узнаете, как использовать Kubernetes для создания надежной, масштабируемой и отказоустойчивой микросервисной архитектуры. Подробно рассмотрены особенности применения микросервисов, стратегии высокой доступности, CI/CD, GitOps и наблюдаемости в мире облачных технологий. Представлены практические примеры использования таких инструментов, как Docker, Rancher, Terraform, Operators, Helm, Prometheus, Istio, Grafana, OpenTelemetry, Jaeger, Loki и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰1
🌍💼 Чем отличается наем IT-специалистов в России и за рубежом: 5 ключевых отличий
Процессы найма могут сильно отличаться в зависимости от страны. Где-то акцент на практические навыки, где-то важны тестовые задания, а иногда решает просто культура общения.
Почему иностранные компании чаще спрашивают о ваших soft skills, а в России обращают внимание на знания теории? И как это влияет на карьеры разработчиков?
Узнайте, как адаптировать свои навыки и подход к поиску работы, чтобы оставаться востребованным в любой точке мира!
📎 Читать о различиях найма
Процессы найма могут сильно отличаться в зависимости от страны. Где-то акцент на практические навыки, где-то важны тестовые задания, а иногда решает просто культура общения.
Почему иностранные компании чаще спрашивают о ваших soft skills, а в России обращают внимание на знания теории? И как это влияет на карьеры разработчиков?
Узнайте, как адаптировать свои навыки и подход к поиску работы, чтобы оставаться востребованным в любой точке мира!
📎 Читать о различиях найма
🛠 Puppet: автоматизация управления вашей инфраструктурой
Puppet — это мощный инструмент управления конфигурацией, который позволяет автоматизировать настройку, управление и поддержку серверов в IT-инфраструктуре. С его помощью можно гарантировать, что ваши системы находятся в требуемом состоянии, без необходимости ручного вмешательства.
❓ Как работает Puppet?
Puppet использует декларативный подход. вы описываете в специальных файлах (манифестах), как должны быть настроены ваши системы: какие пакеты установить, какие файлы создать или изменить, какие сервисы запустить. эти манифесты затем компилируются Puppet Master в каталоги — инструкции, которые агенты выполняют на серверах.
Oсновные элементы:
➖ Puppet Master: сервер, который управляет конфигурациями
➖ Puppet Agent: программа на каждом управляемом узле, которая применяет конфигурации
➖ Facter: инструмент для сбора информации о системе, например, ОС, IP-адрес и т.д.
➖ Hiera: система для управления данными, чтобы отделить настройки от кода
🧩Чем Puppet полезен?
Унификация: все сервера получают одну и ту же конфигурацию
Масштабируемость: подходит как для десятков серверов, так и для тысяч
Идёмпотентность: Puppet проверяет состояние системы и меняет только то, что нужно
Простота изменений: изменения описываются в манифестах и автоматически применяются на всех системах
👨💻 Где используют Puppet?
Puppet незаменим для автоматизации в крупных компаниях с большими IT-инфраструктурами. с его помощью можно управлять серверными приложениями, базами данных, системами виртуализации и контейнерами.
🐸 Библиотека devops'a
Puppet — это мощный инструмент управления конфигурацией, который позволяет автоматизировать настройку, управление и поддержку серверов в IT-инфраструктуре. С его помощью можно гарантировать, что ваши системы находятся в требуемом состоянии, без необходимости ручного вмешательства.
Puppet использует декларативный подход. вы описываете в специальных файлах (манифестах), как должны быть настроены ваши системы: какие пакеты установить, какие файлы создать или изменить, какие сервисы запустить. эти манифесты затем компилируются Puppet Master в каталоги — инструкции, которые агенты выполняют на серверах.
Oсновные элементы:
🧩Чем Puppet полезен?
Унификация: все сервера получают одну и ту же конфигурацию
Масштабируемость: подходит как для десятков серверов, так и для тысяч
Идёмпотентность: Puppet проверяет состояние системы и меняет только то, что нужно
Простота изменений: изменения описываются в манифестах и автоматически применяются на всех системах
Puppet незаменим для автоматизации в крупных компаниях с большими IT-инфраструктурами. с его помощью можно управлять серверными приложениями, базами данных, системами виртуализации и контейнерами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏1😁1
Тома (volumes) в Kubernetes — это важная часть работы с данными в контейнерах. Они помогают сохранить данные, которые могут быть утрачены при перезапуске контейнера, или поделиться ими между контейнерами в одном поде. Разберёмся, какие бывают тома, зачем они нужны и как их правильно использовать.
❓Зачем нужны тома?
Представьте, что ваш контейнер — это временный рабочий стол. Он может исчезнуть в любой момент, а все, что на нём лежало, пропадёт.
Чтобы избежать этого, Kubernetes предоставляет тома, которые:
Основные типы томов:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Please open Telegram to view this post
VIEW IN TELEGRAM
🐧Clear Linux OS: Быстрая, безопасная, современная
❓Что это такое?
Clear Linux OS — это открытая, модульная операционная система Linux, оптимизированная под платформы Intel. Её основная цель — обеспечить максимальную производительность из коробки, сохраняя при этом простоту управления и высокую безопасность.
Ключевые особенности:
1️⃣ Оптимизация для Intel — Clear Linux OS тщательно настроена для работы на процессорах Intel. Используя последние версии компиляторов и оптимизаций, она гарантирует, что программы и ядро работают быстрее, чем на многих других дистрибутивах.
2️⃣ Stateless-дизайн — система построена на идее разделения системных и пользовательских данных:
➡️ Системные файлы остаются нетронутыми.
➡️ Ваша конфигурация легко управляется и изолируется. Это упрощает обновления и делает систему более надёжной.
3️⃣ Уникальная система управления пакетами — Clear Linux использует бандлы вместо традиционных пакетов. Это готовые наборы программ, которые быстро устанавливаются и обновляются. Вместо установки отдельных зависимостей вы получаете всё, что нужно, в одном шаге.
4️⃣ Постоянные обновления —дистрибутив активно поддерживается, и пользователи получают последние версии ядра, программ и патчей безопасности.
5️⃣ Безопасность на первом месте — система использует лучшие практики для обеспечения конфиденциальности и защиты данных, включая поддержку шифрования и строгую изоляцию процессов.
🖇 Попробовать Clear Linux OS
❓Что это такое?
Clear Linux OS — это открытая, модульная операционная система Linux, оптимизированная под платформы Intel. Её основная цель — обеспечить максимальную производительность из коробки, сохраняя при этом простоту управления и высокую безопасность.
Ключевые особенности:
🖇 Попробовать Clear Linux OS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🧚 Открытая редакция: ищем авторов для рубрики DevLife
Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!
Если у вас есть история о том, как вы:
• выросли в профессии
• освоили новые технологии
• сделали крутой карьерный скачок
• эпично лажанулись
• создали интересные проекты
— присылайте свои статьи на почту [email protected] с темой DevLife
Требования простые:
• Реальный опыт
• Конкретные шаги
• От 5000 знаков
• Ссылка на Google Docs
Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1 млн + человек.
Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!
Если у вас есть история о том, как вы:
• выросли в профессии
• освоили новые технологии
• сделали крутой карьерный скачок
• эпично лажанулись
• создали интересные проекты
— присылайте свои статьи на почту [email protected] с темой DevLife
Требования простые:
• Реальный опыт
• Конкретные шаги
• От 5000 знаков
• Ссылка на Google Docs
Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1 млн + человек.