Forwarded from Yandex Cloud
В карточках перечислили основные обновления в каждой из версий. Читайте подробнее по ссылке.
#yacloud_general
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😱2👍1
🌟 Тяжелый день в мире DevOps 😓
☝️ Сперва на кластер NiFi при миграции с публичного GitHub прокатилась какая-то старая Ansible роль и поломались конфигурационные файлы 😮
Затем кластер никак не хотел собираться, якобы не может достучаться до соседних нод, хотя с виду все работает.
Затем я все таки подумал на ядро и посмотрел логи:
RPC: fragment too large😐
Не знаю, откуда это взялось, вроде никаких NFS у меня нет. Семь бед один резет 🚁
🧶Потом пришлось разбираться в Jenkins пайплайне, который запускает с параметрами Ansible playbook, который шаблонинизирует Kubernetes манифест через Jinja2, который потом применяется через😡
📝 Ну и успел поразбираться с OOM на одном из Jupyter server в Kubeflow, что тоже прошло не спокойно.
План был такой:
☝️ Увелечение 👩💻 Оптимизация дата сета (возможно удастся его уменьшить)
🆚Использование альтернативных моделей, которые более оптимизированы по работе с памятью
Откровенно говоря, тачки в кластере у нас были не шибко жирные в целях экономии денег, потому было принято решение заскейлить группы узлов по памяти.
И тут началось: увидел на Kubeflow🔫
🤑
📄Завел задачу себе на синк образов для Kubeflow в локальный Artifactory, а также добавить аутентификацию для увеличения лимита до 200. Различных образов у меня в Kubeflow чуть более, чем 100.
Но так как времени уже много, а контейнеров стартануло в целом достаточно, кроме парочки, среди которых был UI, я принял решение подождать шесть часов в качестве быстрого решения😂
#историядня #kubeflow #oom #nifi
Затем кластер никак не хотел собираться, якобы не может достучаться до соседних нод, хотя с виду все работает.
Затем я все таки подумал на ядро и посмотрел логи:
RPC: fragment too large
Не знаю, откуда это взялось, вроде никаких NFS у меня нет. Семь бед один резет 🚁
🧶Потом пришлось разбираться в Jenkins пайплайне, который запускает с параметрами Ansible playbook, который шаблонинизирует Kubernetes манифест через Jinja2, который потом применяется через
kubectl apply. Вопросов больше, чем ответов. План был такой:
memory limits
🆚Использование альтернативных моделей, которые более оптимизированы по работе с памятью
Откровенно говоря, тачки в кластере у нас были не шибко жирные в целях экономии денег, потому было принято решение заскейлить группы узлов по памяти.
И тут началось: увидел на Kubeflow
no healthy upstream.. а в событиях собственно и причину 429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading The rate limits of 100 container image requests per six hours for anonymous usage
Беспощадный капитализм 📄Завел задачу себе на синк образов для Kubeflow в локальный Artifactory, а также добавить аутентификацию для увеличения лимита до 200. Различных образов у меня в Kubeflow чуть более, чем 100.
Но так как времени уже много, а контейнеров стартануло в целом достаточно, кроме парочки, среди которых был UI, я принял решение подождать шесть часов в качестве быстрого решения
#историядня #kubeflow #oom #nifi
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6😱4
Kubeflow официально присоединился к CNCF в качестве проекта на стадии инкубации! Это означает, что проект стал частью нейтральной структуры управления, поддерживаемой Linux Foundation
Теперь у нас открываются новые возможности для развития и роста. Следим за новостями о том, что это значит для сообщества 🔍
Kubeflow Mailing List 📦
Kubeflow Community Call
Please open Telegram to view this post
VIEW IN TELEGRAM
Kubeflow
Community
About the Kubeflow community
👍4❤1
У меня *nix-деформация.
Так и не смог за сутки привыкнуть к интерфейсу MacOS.
Tiling manager -- Yabai
Statusbar -- Sketchybar
Пришлось привыкать к zsh и перепиливать конфиги.
Вернул Alacritty + tmux с плагинами.
Так и не смог за сутки привыкнуть к интерфейсу MacOS.
Tiling manager -- Yabai
Statusbar -- Sketchybar
Пришлось привыкать к zsh и перепиливать конфиги.
Вернул Alacritty + tmux с плагинами.
😁2👻1
Cilium — это мощный инструмент для мониторинга и повышения observability кластера Kubernetes. Он предоставляет возможность отслеживать метрики, такие как
С помощью метрик Cilium можно получить глубокое понимание поведения и производительности сервисов в кластере Kubernetes. а также обеспечить оптимальную производительность, быстро обнаруживать аномалии и оперативно устранять неполадки. Он работает как прозрачный слой, который позволяет эффективно управлять сетевым трафиком между микросервисами и обеспечивать его безопасность.
Так что, если вам требуется комплексный мониторинг метрик и повышение observability для ваших сервисов в Kubernetes, Cilium предоставляет надежное решение, обеспечивающее анализ и мониторинг производительности, подобный тому, что предоставляет AWS ALB.
https://docs.cilium.io/en/latest/observability/metrics/
https://github.com/cilium/hubble/blob/main/README.md#metrics--monitoring
#cilium
HTTP status codes, latency, request and response time. Это очень похоже на то, что предлагает AWS Application Load Balancer, но Cilium нацелен специально на сервисы Kubernetes, использующие ClusterIP сервисы.С помощью метрик Cilium можно получить глубокое понимание поведения и производительности сервисов в кластере Kubernetes. а также обеспечить оптимальную производительность, быстро обнаруживать аномалии и оперативно устранять неполадки. Он работает как прозрачный слой, который позволяет эффективно управлять сетевым трафиком между микросервисами и обеспечивать его безопасность.
Так что, если вам требуется комплексный мониторинг метрик и повышение observability для ваших сервисов в Kubernetes, Cilium предоставляет надежное решение, обеспечивающее анализ и мониторинг производительности, подобный тому, что предоставляет AWS ALB.
https://docs.cilium.io/en/latest/observability/metrics/
https://github.com/cilium/hubble/blob/main/README.md#metrics--monitoring
#cilium
docs.cilium.io
Monitoring & Metrics — Cilium 1.19.0-dev documentation
🔥3👍2👏2
Ну так что, а кто как запускает контейнеры на MacOS? Docker? Или еще что?
Я ранее использовал Podman на Linux.
Ну, собственно, на MacOS я также остановился на Podman🔫
Я так понимаю, тут виртуалочка нужна будет под ногами для запуска контейнеров..
Я ранее использовал Podman на Linux.
Ну, собственно, на MacOS я также остановился на Podman
Я так понимаю, тут виртуалочка нужна будет под ногами для запуска контейнеров..
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, друзья!
🚀 Отправка метрик в Prometheus Pushgateway
Мы старательно отправляли метрики в Prometheus Pushgateway, который затем делал их доступными для сканирования Prometheus. Однако есть одна загвоздка - Prometheus собирает эти метрики с фиксированным интервалом в 30 секунд. Хотя такой подход имеет свои достоинства, он не всегда дает точную картину нашей динамичной системы.
⏰ Временные метки (
timestamps): Добавлять или не добавлять?Одним из решений, находящихся в поле нашего зрения, является добавление временных меток (
timestamps) в наши метрики. Этот, казалось бы, простой шаг позволяет получить много информации о времени последнего обновления каждой метрики. Такая наглядность может стать спасением при отладке.Но подождите, есть один нюанс - нужно ли использовать временные метки? Ответ может вас удивить.
https://prometheus.io/docs/practices/pushing/
Еще одним направлением, которое мы изучаем, является ручное удаление метрик. Поскольку в Pushgateway отсутствует встроенный механизм истечения срока действия метрики (TTL), мы рассматриваем возможность стратегического использования PUT-запросов с пустым телом. Это позволяет эффективно удалять метрики, но с другой стороны. Как мы можем гарантировать, что не потеряем метрики до того, как Prometheus получит возможность их собрать?
🎟 Обогащение метрик метаданными
Лейблы, лейблы, больше лейблов! Еще одна хитрость в наших рукавах - обогащение метрик метаданными. С помощью меток мы можем эффективно классифицировать и фильтровать метрики. Это все равно что добавить нотку организованности в хаос метрик.
Буду рад услышать ваши мнения и рекомендации по поводу этих подходов. Открыли ли вы для себя другие методы, которые творят чудеса в области управления метриками Pushgateway? Особенно в тех случаях, когда речь идет о частых обновлениях или истечении срока действия?
Please open Telegram to view this post
VIEW IN TELEGRAM
prometheus.io
When to use the Pushgateway | Prometheus
Prometheus project documentation for When to use the Pushgateway
👍4🔥3👏2
Hacking AI/ML Account Hijacking and Internal Network Attacks in Kubeflow
* Multiple moderate to high severity vulnerabilities in Kubeflow versions <=1.7.0
* Authentication data can be leaked by attackers
* Vulnerability scanner and exploit tool released
* Multiple moderate to high severity vulnerabilities in Kubeflow versions <=1.7.0
* Authentication data can be leaked by attackers
* Vulnerability scanner and exploit tool released
Forwarded from Pavel Klyuev
GitHub - zombodb/zombodb: Making Postgres and Elasticsearch work together like it's 2023
https://github.com/zombodb/zombodb
https://github.com/zombodb/zombodb
GitHub
GitHub - zombodb/zombodb: Making Postgres and Elasticsearch work together like it's 2023
Making Postgres and Elasticsearch work together like it's 2023 - zombodb/zombodb
🔥2
Kubernetes Exposed: один Yaml до провала
🔓 В статье рассматриваются два вектора атаки: public endpoints + anonymous RBAC access.
🇰🇵 Убедитесь, что
🐉 Не назначайте роль администратора анонимному пользователю. Обязательно назначьте соответствующие разрешения каждому пользователю и строго придерживайтесь принципа наименьших привилегий.
🛂 Внедрение Admission Control Policies. Admission Controllers могут перехватывать запросы к API Kubernetes, что позволяет вам определять и применять политики, что укрепит безопасность ваших кластеров Kubernetes.
🇰🇵 Убедитесь, что
kubectl proxy недоступен из публичных сетей, он должен быть исключительно в защищенной сетевой среде и доступен только аутентифицированным и авторизованным пользователям.🐉 Не назначайте роль администратора анонимному пользователю. Обязательно назначьте соответствующие разрешения каждому пользователю и строго придерживайтесь принципа наименьших привилегий.
🛂 Внедрение Admission Control Policies. Admission Controllers могут перехватывать запросы к API Kubernetes, что позволяет вам определять и применять политики, что укрепит безопасность ваших кластеров Kubernetes.
Please open Telegram to view this post
VIEW IN TELEGRAM
Aqua
Kubernetes Exposed: One Yaml away from Disaster
We found two main misconfigurations in Kubernetes clusters belonging to more than 350 organizations openly accessible and largely unprotected.
👍4🔥2🐳2
Уже несколько раз наткнулся на статью Slack про Service Delivery Index
Рассказывают про комлпексный показатель удовлетворенности пользователей в соотношении с аптаймом (Service Delivery Index-Reliability)
API Availability
availability api = successful requests / total requests
Overall Availability
availability overall = uptime status site * availability api
Читается интересно, но сколько ресурсов на это тратится? Что не мешает им продолжать разрабатывать посредственный софт.
Отлично читается в параллель с другим тредом про переоценку SLO при реализации SRE практик.
Рассказывают про комлпексный показатель удовлетворенности пользователей в соотношении с аптаймом (Service Delivery Index-Reliability)
API Availability
availability api = successful requests / total requests
Overall Availability
availability overall = uptime status site * availability api
Читается интересно, но сколько ресурсов на это тратится? Что не мешает им продолжать разрабатывать посредственный софт.
Отлично читается в параллель с другим тредом про переоценку SLO при реализации SRE практик.
👍4🤯2
Создание индекса в большой таблице — это далеко не мгновенное действие, особенно если в ней много данных. По этой причине, операция может занять некоторое время и повесить exclusive lock на всю таблицу.
Есть хитрость! Используйте
CONCURRENTLY при создании индекса, чтобы максимально уменьшить воздействие на работу таблицы. По сравнению с традиционным способом, данный метод может существенно уменьшить время блокировки.♻️REINDEX: Перестройка Индексов
Время от времени индексы нужно перестроить. Когда? Например, если индекс поврежден или в нем много пустых страниц. В таких случаях,
REINDEX приходит на помощь. Однако стоит помнить, что без параметра CONCURRENTLY это действие может блокировать таблицу. Выбор параметра зависит от конкретной ситуации.🧹 VACUUM FULL: Освобождение Места
Если ваша база данных "набрала вес", поможет
VACUUM FULL. Эта команда используется для восстановления хранилища путем удаления устаревших данных или кортежей из базы данных PostgreSQL. Важно помнить, что для успешного выполнения VACUUM FULL потребуется достаточно свободного дискового пространства.Рекомендуется придерживаться хороших практик управления версиями схемы базы данных и рассматривать альтернативные решения, такие как pg_repack.
🔀 ALTER COLUMN: Изменение Структур
Изменение типа колонки или индекса может вызвать сложности, особенно если изменение проводится несистематически. Частые структурные изменения могут привести к трудностям при обновлениях и миграциях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👨💻2
Conventional Commits — простое соглашение о том, как нужно писать сообщения коммитов. Оно описывает простой набор правил для создания понятной истории коммитов, а также позволяет проще разрабатывать инструменты автоматизации, основанные на истории коммитов. Данное соглашение совместимо с SemVer, описывая новые функции, исправления и изменения, нарушающие обратную совместимость в сообщениях коммитов.
Сообщения коммитов должны быть следующей структуры:
Сообщения коммитов должны быть следующей структуры:
<тип>[необязательный контекст]: <описание>
[необязательное тело]
[необязательная(ые) сноска(и)]👍5✍2🔥2👌2
Kubernetes 1.28 officially introduces sidecars to the Kubernetes API
Обновление Kubernetes до версии 1.28 внесло интересное изменение в спецификацию пода, а именно в поле
🧑🚒 RestartPolicy для Init-Контейнеров
В предыдущих версиях Kubernetes
🚀 Always: Если установлена
🛠 Остальные контейнеры: Для остальных контейнеров или если поле
🏍 Sidecar: Это изменение позволяет создавать sidecar-контейнеры или контейнеры инициализации с
Это изменение предоставляет больше гибкости при управлении жизненным циклом init-контейнеров и позволяет им работать как легкие sidecar-контейнеры с возможностью постоянного перезапуска.
Обновление Kubernetes до версии 1.28 внесло интересное изменение в спецификацию пода, а именно в поле
RestartPolicy для init-контейнеров.В предыдущих версиях Kubernetes
RestartPolicy для init-контейнеров была наследована от общей RestartPolicy пода. Теперь появилось новое поле RestartPolicy в спецификации init-контейнера, и единственным допустимым значением является "Always".RestartPolicy "Always" для init-контейнера, это означает, что этот контейнер будет постоянно перезапускаться, даже если он завершил выполнение задачи.RestartPolicy не указано в спецификации контейнера, поведение перезапуска определяется RestartPolicy на уровне пода и типом контейнера.RestartPolicy: Always, которые будут перезапускаться независимо от других контейнеров. После завершения работы всех обычных контейнеров с RestartPolicy "Always", все init-контейнеры с этой настройкой также будут завершены.Это изменение предоставляет больше гибкости при управлении жизненным циклом init-контейнеров и позволяет им работать как легкие sidecar-контейнеры с возможностью постоянного перезапуска.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯2❤1
Forwarded from DevOps FM
Всем DevOps! 🖖
Наверняка вы слышали про историю с OpenTF.
Вкратце: четыре недели назад HashiCorp перевела Terraform (и другие свои продукты) с лицензии открытого исходного кода на лицензию Business Source (BUSL). Три недели назад объединение разных компаний выпустило манифест OpenTF, в котором просило HashiCorp вернуться к лицензии с открытым исходным кодом. Две недели назад, не получив ответа от HashiCorp, был создан приватный форк Terraform и заявлено, что он будет сделан публичным через 1-2 недели.
Собственно, это и случилось🥳
Форк OpenTF уже доступен — ссылка на репозиторий.
Релизов пока нет, почему — можно узнать здесь.
Наверняка вы слышали про историю с OpenTF.
Вкратце: четыре недели назад HashiCorp перевела Terraform (и другие свои продукты) с лицензии открытого исходного кода на лицензию Business Source (BUSL). Три недели назад объединение разных компаний выпустило манифест OpenTF, в котором просило HashiCorp вернуться к лицензии с открытым исходным кодом. Две недели назад, не получив ответа от HashiCorp, был создан приватный форк Terraform и заявлено, что он будет сделан публичным через 1-2 недели.
Собственно, это и случилось
Форк OpenTF уже доступен — ссылка на репозиторий.
Релизов пока нет, почему — можно узнать здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Forwarded from Elastic Stack recipes
Вышел DataPrepper 2.4
DataPrepper — это компонент OpenSearch, который является аналогом ingest-node в ElasticSearch и предназначен для трансформации данных.
Из ключевых обновлений: поддержка в качестве источника Apache Kafka, пакетная обработка событий Amazon S3, фильтрация внутри синков, новые кодеки для синков S3 и потоковое обнаружение аномалий.
Поддержка Apache Kafka. Добавлена поддержка Kafka и Amazon Managed Streaming for Apache Kafka (Amazon MSK) в качестве источника, что принимать данные из одного или нескольких топиков в кластере Kafka. Также есть возможность настроить несколько конвейеров на считывание данных из одного топика в Kafka, что позволяет настраивать количество потребителей топика на стороне Kafka.
Пакетная обработка событий S3. Добавлена поддержка функции сканирования S3, которая сканирует бакеты Amazon S3 для обработки объектов без необходимости настройки уведомлений о событиях Amazon S3. Фича подходит для случаев, когда необходимо перенести большие объемы исторических данных или для пользователей, которые хотят запускать задания ночного сканирования данных, загруженных в бакеты S3.
Фильтрация внутри синков. Добавлены опции include_keys и exclude_keys для синков, что дает возможность получать данные из любого источника и применять правила обогащения с помощью цепочки процессоров. Также можно выборочно отправлять данные в определенный приемник, например OpenSearch или S3 для архивации.
Кодеки S3. Появились новые кодеки: JSON codec, Avro codec, Parquet codec.
Потоковое обнаружение аномалий. Потоковый детектор аномалий теперь содержит опцию identification_keys, которая создает модель Random Cut Forest (RCF) для каждого значения в данных временного ряда. С помощью опции identification_keys аномалии обнаруживаются по уникальному набору ключей.
Скачать новую версию DataPrepper 2.4
Release Notes к DataPrepper 2.4
Roadmap для DataPrepper
DataPrepper — это компонент OpenSearch, который является аналогом ingest-node в ElasticSearch и предназначен для трансформации данных.
Из ключевых обновлений: поддержка в качестве источника Apache Kafka, пакетная обработка событий Amazon S3, фильтрация внутри синков, новые кодеки для синков S3 и потоковое обнаружение аномалий.
Поддержка Apache Kafka. Добавлена поддержка Kafka и Amazon Managed Streaming for Apache Kafka (Amazon MSK) в качестве источника, что принимать данные из одного или нескольких топиков в кластере Kafka. Также есть возможность настроить несколько конвейеров на считывание данных из одного топика в Kafka, что позволяет настраивать количество потребителей топика на стороне Kafka.
Пакетная обработка событий S3. Добавлена поддержка функции сканирования S3, которая сканирует бакеты Amazon S3 для обработки объектов без необходимости настройки уведомлений о событиях Amazon S3. Фича подходит для случаев, когда необходимо перенести большие объемы исторических данных или для пользователей, которые хотят запускать задания ночного сканирования данных, загруженных в бакеты S3.
Фильтрация внутри синков. Добавлены опции include_keys и exclude_keys для синков, что дает возможность получать данные из любого источника и применять правила обогащения с помощью цепочки процессоров. Также можно выборочно отправлять данные в определенный приемник, например OpenSearch или S3 для архивации.
Кодеки S3. Появились новые кодеки: JSON codec, Avro codec, Parquet codec.
Потоковое обнаружение аномалий. Потоковый детектор аномалий теперь содержит опцию identification_keys, которая создает модель Random Cut Forest (RCF) для каждого значения в данных временного ряда. С помощью опции identification_keys аномалии обнаруживаются по уникальному набору ключей.
Скачать новую версию DataPrepper 2.4
Release Notes к DataPrepper 2.4
Roadmap для DataPrepper
👍3🔥2