Есть два варианта использования Spark в Kubeflow:
https://github.com/kubeflow/manifests/issues/2311
https://github.com/kubeflow/manifests/pull/2430
Вместо этого, рекомендуется использовать
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Tracking for `/contrib` components evaluation and clean up · Issue #2311 · kubeflow/manifests
To enable new components to integrate with Kubeflow, a contrib component guidelines have been added with a list of requirements. To enforce the requirements for existing components, each component ...
👍1
Кубертатный период
Apache Spark on Kubeflow Migrating Apache Spark ML Jobs to Spark + Tensorflow on Kubeflow Есть два варианта использования Spark в Kubeflow: 1️⃣ Установка оператора Apache Spark в namespace Kubeflow. Однако, стоит отметить, что Spark Operator, отсутствует…
Кстати, почитать о том, как у нас используется Spark operator в Kubernetes для масштабирования, можно тут — https://habr.com/ru/companies/leroy_merlin/articles/712946/
Хабр
Платформа данных в Леруа Мерлен — как мы победили масштабирование
Всем привет! Меня зовут Александр Токарев, я технический архитектор домена «Управление данными» в Леруа Мерлен. Год назад мы уже делали обзор нашей Платформы данных, сейчас же я расскажу...
🔥4
Pavel Klyuev
🔍 Сравнение микросервисной архитектуры и монолита 💩 В процессе разговоров с парой своих коллег, я начал сомневаться в премиуществах микросервисной архитектуры, тут хочу изложить общие термины и личное мнение, которое не претендует на истину. Цитата для привлечения…
📢 Важное замечание о микросервисной архитектуре
✍️ Заметка: The Saga is Antipattern
Микросервисы, задуманные как решение проблем, могут приносить больше вреда, чем пользы, если их применять слепо. Основная проблема заключается в отсутствии четких критериев, определяющих их применимость.
Свойства микросервисной архитектуры могут ограничивать способность системы на основе микросервисов выполнять определенные задачи, такие как транзакции, поддержка согласованности или проверка доступности системы.
Разделение доменов в соответствии с управляемыми данными позволяет быстро понять, что в большинстве случаев микросервисы очень похожи на традиционные монолиты, работающие с большим доменом. Некоторые организации обнаруживают, что традиционные монолиты по своей сути являются микросервисами, так как имеют очень ограниченное количество действительно независимых доменов, зачастую всего один.
Такое положение дел приводит к разрушительным последствиям:
🔴 Построение ненадежных систем поверх надежной инфраструктуры в облаке.
🔴 Получение дизайна, который изначально сломан, с перепутанными уровнями, обработкой ошибок связи/повторных попыток и обработкой транзакций на уровне бизнес-логики.
🔴 Разбиение данных на части и их последующая сборка для обработки запросов, что приводит к непредсказуемым и едва контролируемым задержкам.
🔴 Невозможность обеспечения целостности и согласованности данных.
🔴 Необходимость полного тестирования перед развертыванием из-за отсутствия гарантий, что новая версия сервиса не сломает всю систему. Это полностью исключает независимую тестируемость и возможность развертывания сервисов.
Варианты решения:
1️⃣ Модульный монолит. Это может быть именно то, о чем я говорил ранее.
2️⃣ Событийная архитектура (Event-driven).
3️⃣ Наносервисы. Этот вариант обсуждается подробнее здесь, и это именно то, на что автор обращает внимание в своей заметке.
✍️ Заметка: The Saga is Antipattern
Микросервисы, задуманные как решение проблем, могут приносить больше вреда, чем пользы, если их применять слепо. Основная проблема заключается в отсутствии четких критериев, определяющих их применимость.
Свойства микросервисной архитектуры могут ограничивать способность системы на основе микросервисов выполнять определенные задачи, такие как транзакции, поддержка согласованности или проверка доступности системы.
Разделение доменов в соответствии с управляемыми данными позволяет быстро понять, что в большинстве случаев микросервисы очень похожи на традиционные монолиты, работающие с большим доменом. Некоторые организации обнаруживают, что традиционные монолиты по своей сути являются микросервисами, так как имеют очень ограниченное количество действительно независимых доменов, зачастую всего один.
Такое положение дел приводит к разрушительным последствиям:
🔴 Построение ненадежных систем поверх надежной инфраструктуры в облаке.
🔴 Получение дизайна, который изначально сломан, с перепутанными уровнями, обработкой ошибок связи/повторных попыток и обработкой транзакций на уровне бизнес-логики.
🔴 Разбиение данных на части и их последующая сборка для обработки запросов, что приводит к непредсказуемым и едва контролируемым задержкам.
🔴 Невозможность обеспечения целостности и согласованности данных.
🔴 Необходимость полного тестирования перед развертыванием из-за отсутствия гарантий, что новая версия сервиса не сломает всю систему. Это полностью исключает независимую тестируемость и возможность развертывания сервисов.
Варианты решения:
1️⃣ Модульный монолит. Это может быть именно то, о чем я говорил ранее.
2️⃣ Событийная архитектура (Event-driven).
3️⃣ Наносервисы. Этот вариант обсуждается подробнее здесь, и это именно то, на что автор обращает внимание в своей заметке.
DEV Community
The Saga is Antipattern
The Saga pattern is often positioned as a better way to handle distributed transactions. I see no...
❤1
Lost in transit: debugging dropped packets from negative header lengths
В стиле Cloudflare, это глубокое погружение в ядро (kernel), чтобы найти источник вызывающей проблемы потери пакетов в сети Kubernetes.
Использовались такие интересные тулы, как pwru ("packet, where are you?") от Cillium и perf-probe для динамической трассировки.
Ну и причина, как обычно в MTU: некорректное значение из-за резервации нескольких байт для MAC заголовка на виртуальных интерфейсах.
В стиле Cloudflare, это глубокое погружение в ядро (kernel), чтобы найти источник вызывающей проблемы потери пакетов в сети Kubernetes.
Использовались такие интересные тулы, как pwru ("packet, where are you?") от Cillium и perf-probe для динамической трассировки.
Ну и причина, как обычно в MTU: некорректное значение из-за резервации нескольких байт для MAC заголовка на виртуальных интерфейсах.
The Cloudflare Blog
Lost in transit: debugging dropped packets from negative header lengths
In this post, we'll provide some insight into the process of investigating networking issues and how to begin debugging issues in the kernel using pwru and kprobe tracepoints.
This media is not supported in your browser
VIEW IN TELEGRAM
Кстати говоря, теперь Pulumi может автоматически конвернуть Terraform HCL в Pulumi код на любом языке
https://www.pulumi.com/blog/converting-full-terraform-programs-to-pulumi
https://www.pulumi.com/blog/converting-full-terraform-programs-to-pulumi
👍3
📢📊 Отчет о состоянии оптимизации затрат в Kubernetes от Google! 🌐
🔑 Ключевые тезисы:
1️⃣ Оптимизация затрат в Kubernetes начинается с понимания важности правильной настройки запросов и лимитов для ресурсов.
2️⃣ Правильное определение размеров ваших приложений и сервисов является золотым сигналом для оптимизации затрат.
3️⃣ Балансировка надежности, производительности и экономической эффективности может вызывать сложности.
4️⃣ Слепая оптимизации затрат может негативно сказаться на опыте конечных пользователей.
5️⃣ Автоматическое масштабирование рабочей нагрузки на основе бизнес- и пользовательских метрик.
6️⃣ Крупные компании активно используют скидки, предлагаемые облачными провайдерами.
7️⃣ Некорректная настройка запросов и лимитов может привести к неожиданным расходам.
📣💡 Ознакомьтесь с полным отчетом, чтобы узнать больше о оптимизации затрат в Kubernetes! 📚💰
🔑 Ключевые тезисы:
1️⃣ Оптимизация затрат в Kubernetes начинается с понимания важности правильной настройки запросов и лимитов для ресурсов.
2️⃣ Правильное определение размеров ваших приложений и сервисов является золотым сигналом для оптимизации затрат.
3️⃣ Балансировка надежности, производительности и экономической эффективности может вызывать сложности.
4️⃣ Слепая оптимизации затрат может негативно сказаться на опыте конечных пользователей.
5️⃣ Автоматическое масштабирование рабочей нагрузки на основе бизнес- и пользовательских метрик.
6️⃣ Крупные компании активно используют скидки, предлагаемые облачными провайдерами.
7️⃣ Некорректная настройка запросов и лимитов может привести к неожиданным расходам.
📣💡 Ознакомьтесь с полным отчетом, чтобы узнать больше о оптимизации затрат в Kubernetes! 📚💰
Google Cloud Blog
New report: State of Kubernetes Cost Optimization | Google Cloud Blog
The first ever State of Kubernetes Cost Optimization report presents large-scale quantitative research on anonymized data from Kubernetes clusters.
❤2🔥2
Run an active-active multi-region Kubernetes application with AppMesh and EKS
В этом туториал от AWS используется несколько сервисов AWS, включая AWS App Mesh, Amazon Route 53 и Amazon EKS, для запуска отказоустойчивого, высокодоступного приложения в двух разных регионах на базе Kubernetes (EKS)
В этом туториал от AWS используется несколько сервисов AWS, включая AWS App Mesh, Amazon Route 53 и Amazon EKS, для запуска отказоустойчивого, высокодоступного приложения в двух разных регионах на базе Kubernetes (EKS)
👍2🤔2❤1
Flux v2.0.0 is Out!
Главный вывод здесь заключается в том, что
Перед обновлением на Flux 2 проверьте свою реализацию GitOps на предмет использования
Главный вывод здесь заключается в том, что
patchesStrategicMerge и patchesJson6902 признаны устаревшими в v1beta1 и будут удалены в v1.Перед обновлением на Flux 2 проверьте свою реализацию GitOps на предмет использования
patchesStrategicMerge и patchesJson6902. Заменить патчами.GitHub
Release v2.0.0 · fluxcd/flux2
Highlights
This is the first General Availability (GA) release of Flux v2.
Flux v2.0.0 comes with the promotion of the GitOps related APIs to v1 and adds horizontal scaling & sharding capabilit...
This is the first General Availability (GA) release of Flux v2.
Flux v2.0.0 comes with the promotion of the GitOps related APIs to v1 and adds horizontal scaling & sharding capabilit...
😱2❤1
🚀 NVIDIA Device Plugin для Kubernetes 🖥
NVIDIA Device Plugin для Kubernetes - это daemonSet, который позволяет вам автоматически:
✨ Выявлять количество GPU на каждом узле вашего кластера
🔍 Следить за состоянием ваших GPU
🚀 Запускать контейнеры с поддержкой GPU в кластере Kubernetes
Плагин работает, предоставляя GPU на каждом узле в качестве ресурсов Kubernetes. Это позволяет вам создавать поды и запрашивать ресурсы GPU с помощью requests/limits, а kubelet будет планировать эти поды на узлах, имеющих необходимые GPU.
Плагин также предоставляет ряд функций для управления GPU, таких как:
🔸 Позволяет овер-коммитить задачи на GPU, чтобы вы могли запускать больше подов, чем имеется физических GPU.
🔸 Позволяет указать количество копий каждого GPU, которые вы хотите создать.
🔸 Позволяет указать версию CUDA, которую вы хотите использовать.
Плагин NVIDIA Device Plugin - ценный инструмент для управления GPU в Kubernetes. Он позволяет легко предоставлять GPU в качестве вычислительных ресурсов Kubernetes и предоставляет ряд функций для эффективного управления GPU. 💪
🌟 Будьте готовы раскрыть всю мощь GPU в вашем Kubernetes-кластере с помощью NVIDIA Device Plugin! 🌟
NVIDIA Device Plugin для Kubernetes - это daemonSet, который позволяет вам автоматически:
✨ Выявлять количество GPU на каждом узле вашего кластера
🔍 Следить за состоянием ваших GPU
🚀 Запускать контейнеры с поддержкой GPU в кластере Kubernetes
Плагин работает, предоставляя GPU на каждом узле в качестве ресурсов Kubernetes. Это позволяет вам создавать поды и запрашивать ресурсы GPU с помощью requests/limits, а kubelet будет планировать эти поды на узлах, имеющих необходимые GPU.
Плагин также предоставляет ряд функций для управления GPU, таких как:
🔸 Позволяет овер-коммитить задачи на GPU, чтобы вы могли запускать больше подов, чем имеется физических GPU.
🔸 Позволяет указать количество копий каждого GPU, которые вы хотите создать.
🔸 Позволяет указать версию CUDA, которую вы хотите использовать.
Плагин NVIDIA Device Plugin - ценный инструмент для управления GPU в Kubernetes. Он позволяет легко предоставлять GPU в качестве вычислительных ресурсов Kubernetes и предоставляет ряд функций для эффективного управления GPU. 💪
🌟 Будьте готовы раскрыть всю мощь GPU в вашем Kubernetes-кластере с помощью NVIDIA Device Plugin! 🌟
GitHub
GitHub - NVIDIA/k8s-device-plugin: NVIDIA device plugin for Kubernetes
NVIDIA device plugin for Kubernetes. Contribute to NVIDIA/k8s-device-plugin development by creating an account on GitHub.
🔥3❤1
PR #266 - [Operator] Add AuthenticationStrategy, ManagerDn, ManagerPassword, IdentityStrategy properties for LDAP integration
Еще один контрибушн в Open source.
На этот раз добавил конфигурацию security для LDAP для NiFi Kubernetes Operator.
Еще один контрибушн в Open source.
На этот раз добавил конфигурацию security для LDAP для NiFi Kubernetes Operator.
GitHub
Add AuthenticationStrategy, ManagerDn, ManagerPassword, IdentityStrat… by pashtet04 · Pull Request #266 · konpyutaika/nifikop
…egy properties for LDAP integration
Q
A
Bug fix?
no
New feature?
yes
API breaks?
yes
Deprecations?
no
Related tickets
fixes #65
License
Apache 2.0
What's in this PR?
Add Au...
Q
A
Bug fix?
no
New feature?
yes
API breaks?
yes
Deprecations?
no
Related tickets
fixes #65
License
Apache 2.0
What's in this PR?
Add Au...
👍5🔥3
🔍 Масштабирование приложений в Kubernetes: HPA vs. Увеличение ресурсов
Мне задали вопрос: когда следует использовать HPA для приложений, а когда увеличивать ресурсы контейнера. Можно ли обойтись только управлением ресурсами контейнера при динамической нагрузке?
Короткий ответ: можно (нет)
💡 Обычно мы включаем автоматическое масштабирование (HPA) и увеличиваем количество реплик при изменении нагрузки на наше приложение.
📊 Ресурсы (requests/limits) в основном используются для ограничения вашего приложения и правильного определения размера вашего кластера и приложений внутри.
Начиная с версии Kubernetes 1.27, появилась поддержка динамического изменения ресурсов, но это не обеспечивает достаточной гибкости при изменении нагрузки.
💡 Если нагрузка на приложение предсказуема, то достаточно изменить ресурсы, и приложение сможет обработать запросы без проблем с выделенными ресурсами. Однако, если нагрузка на приложение меняется, возникают проблемы с масштабируемостью или требуется оптимизация расходов, использование горизонтального автоматического масштабирования (HPA) может быть более гибким и эффективным решением. 💪🚀
Мне задали вопрос: когда следует использовать HPA для приложений, а когда увеличивать ресурсы контейнера. Можно ли обойтись только управлением ресурсами контейнера при динамической нагрузке?
Короткий ответ: можно (
💡 Обычно мы включаем автоматическое масштабирование (HPA) и увеличиваем количество реплик при изменении нагрузки на наше приложение.
📊 Ресурсы (requests/limits) в основном используются для ограничения вашего приложения и правильного определения размера вашего кластера и приложений внутри.
Начиная с версии Kubernetes 1.27, появилась поддержка динамического изменения ресурсов, но это не обеспечивает достаточной гибкости при изменении нагрузки.
💡 Если нагрузка на приложение предсказуема, то достаточно изменить ресурсы, и приложение сможет обработать запросы без проблем с выделенными ресурсами. Однако, если нагрузка на приложение меняется, возникают проблемы с масштабируемостью или требуется оптимизация расходов, использование горизонтального автоматического масштабирования (HPA) может быть более гибким и эффективным решением. 💪🚀
Kubernetes
Dynamic Resource Allocation
FEATURE STATE: Kubernetes v1.35 [stable](enabled by default) This page describes dynamic resource allocation (DRA) in Kubernetes.
About DRA DRA is a Kubernetes feature that lets you request and share resources among Pods. These resources are often attached…
About DRA DRA is a Kubernetes feature that lets you request and share resources among Pods. These resources are often attached…
👍3🤔3
💡 Очистка кэшированной памяти в Linux: Как и зачем? 💻
🙋♂️ Пришли сегодня с еще одним вопросом: наша система Linux отображает 20 ГБ кэшированной памяти, и можно ли ее очистить без перезапуска?
👍 Да, вы можете очистить кэшированную память, но давайте разберемся, зачем это может понадобиться.
🥸 Следует учесть, что кэшированная память является значительным потребителем памяти в системе Linux. Если вам интересно узнать реальное количество свободной памяти, рекомендуется обратить внимание на столбец available при использовании команды
Но стоит обратить внимание на следующие ситуации, когда стоит быть осторожным:
🗑 Когда количество доступной памяти (available или free + buffers/cache) приближается к нулю.
🗄 Когда используется область подкачки (swap used).
🔫 Если в выводе команды
Посетите ссылку Help! Linux ate my RAM!, чтобы получить дополнительную информацию о работе памяти в Linux и кэшировании.
🙋♂️ Пришли сегодня с еще одним вопросом: наша система Linux отображает 20 ГБ кэшированной памяти, и можно ли ее очистить без перезапуска?
sync; echo 3 > /proc/sys/vm/drop_caches💁 Каждый раз, когда вы читаете данные с диска, они загружаются в память и сохраняются в кэше страниц. Если вы снова обратитесь к той же части файла, данные будут читаться из памяти, что ускоряет работу системы. Кэширование памяти - это важный механизм оптимизации в Linux, который позволяет избежать повторных обращений к диску и улучшить производительность.
free.Но стоит обратить внимание на следующие ситуации, когда стоит быть осторожным:
🗑 Когда количество доступной памяти (available или free + buffers/cache) приближается к нулю.
🗄 Когда используется область подкачки (swap used).
🔫 Если в выводе команды
dmesg | grep oom-killer есть информация о работе OOM Killer.Посетите ссылку Help! Linux ate my RAM!, чтобы получить дополнительную информацию о работе памяти в Linux и кэшировании.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5💯4🔥1
🎩 Helm Library Chart: Универсальность и преимущества 📦
Вы знали, что можно достичь универсальности с помощью Helm Library Chart? Этот подход позволяет создать гибкий и переиспользуемый Helm-чарт.
Helm Library Chart позволяет нормально работать с объединением значений и шаблонов, в отличие от классического подхода, когда передаются несколько файлов значений с пересекающейся структурой данных.
Основные преимущества использования Helm Library Chart включают:
🔹 Универсальность: Благодаря Helm Library Chart вы можете создавать чарты, которые можно легко повторно использовать для разных приложений или компонентов.
🔹 Мерж значений и шаблонов: Helm Library Chart позволяет без проблем объединять значения и шаблоны, предоставляя более гибкую и удобную систему конфигурации.
🔹 Версионирование: Вы можете использовать версионирование в Helm Library Chart для безопасного управления зависимостями и внесения изменений в чарты.
Таким образом, Helm Library Chart предоставляет эффективный и гибкий подход к созданию универсальных чартов для управления инфраструктурой в Kubernetes. Это отличный инструмент, который поможет вам упростить и стандартизировать процесс развертывания и управления приложениями. 🚀
Вы знали, что можно достичь универсальности с помощью Helm Library Chart? Этот подход позволяет создать гибкий и переиспользуемый Helm-чарт.
Helm Library Chart позволяет нормально работать с объединением значений и шаблонов, в отличие от классического подхода, когда передаются несколько файлов значений с пересекающейся структурой данных.
Основные преимущества использования Helm Library Chart включают:
🔹 Универсальность: Благодаря Helm Library Chart вы можете создавать чарты, которые можно легко повторно использовать для разных приложений или компонентов.
🔹 Мерж значений и шаблонов: Helm Library Chart позволяет без проблем объединять значения и шаблоны, предоставляя более гибкую и удобную систему конфигурации.
🔹 Версионирование: Вы можете использовать версионирование в Helm Library Chart для безопасного управления зависимостями и внесения изменений в чарты.
Таким образом, Helm Library Chart предоставляет эффективный и гибкий подход к созданию универсальных чартов для управления инфраструктурой в Kubernetes. Это отличный инструмент, который поможет вам упростить и стандартизировать процесс развертывания и управления приложениями. 🚀
🔥5👍3👏2🆒1