Кубертатный период
480 subscribers
144 photos
10 videos
3 files
319 links
DevOps Underdog
Download Telegram
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
Kubernetes Exposed: один Yaml до провала

🔓 В статье рассматриваются два вектора атаки: public endpoints + anonymous RBAC access.

🇰🇵 Убедитесь, что kubectl proxy недоступен из публичных сетей, он должен быть исключительно в защищенной сетевой среде и доступен только аутентифицированным и авторизованным пользователям.

🐉 Не назначайте роль администратора анонимному пользователю. Обязательно назначьте соответствующие разрешения каждому пользователю и строго придерживайтесь принципа наименьших привилегий.

🛂 Внедрение Admission Control Policies. Admission Controllers могут перехватывать запросы к API Kubernetes, что позволяет вам определять и применять политики, что укрепит безопасность ваших кластеров Kubernetes.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍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 практик.
👍4🤯2
🎉5
🧐 Углубляемся в Мир PostgreSQL: Работа с Индексами и Схемой 😎

🔥 CREATE INDEX: Важность Блокировок

Создание индекса в большой таблице — это далеко не мгновенное действие, особенно если в ней много данных. По этой причине, операция может занять некоторое время и повесить exclusive lock на всю таблицу.

Есть хитрость! Используйте CONCURRENTLY при создании индекса, чтобы максимально уменьшить воздействие на работу таблицы. По сравнению с традиционным способом, данный метод может существенно уменьшить время блокировки.

♻️REINDEX: Перестройка Индексов

Время от времени индексы нужно перестроить. Когда? Например, если индекс поврежден или в нем много пустых страниц. В таких случаях, REINDEX приходит на помощь. Однако стоит помнить, что без параметра CONCURRENTLY это действие может блокировать таблицу. Выбор параметра зависит от конкретной ситуации.

🧹 VACUUM FULL: Освобождение Места

Если ваша база данных "набрала вес", поможет VACUUM FULL. Эта команда используется для восстановления хранилища путем удаления устаревших данных или кортежей из базы данных PostgreSQL. Важно помнить, что для успешного выполнения VACUUM FULL потребуется достаточно свободного дискового пространства.

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

🔀 ALTER COLUMN: Изменение Структур

Изменение типа колонки или индекса может вызвать сложности, особенно если изменение проводится несистематически. Частые структурные изменения могут привести к трудностям при обновлениях и миграциях.


🛠 Работа с базой данных требует осторожности. Правильные практики, адекватное управление блокировками и переоценка индексов - важные шаги на пути к оптимизации и надежности работы с PostgreSQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👨‍💻2
Conventional Commits — простое соглашение о том, как нужно писать сообщения коммитов. Оно описывает простой набор правил для создания понятной истории коммитов, а также позволяет проще разрабатывать инструменты автоматизации, основанные на истории коммитов. Данное соглашение совместимо с SemVer, описывая новые функции, исправления и изменения, нарушающие обратную совместимость в сообщениях коммитов.

Сообщения коммитов должны быть следующей структуры:

<тип>[необязательный контекст]: <описание>

[необязательное тело]

[необязательная(ые) сноска(и)]
👍52🔥2👌2
Kubernetes 1.28 officially introduces sidecars to the Kubernetes API

Обновление Kubernetes до версии 1.28 внесло интересное изменение в спецификацию пода, а именно в поле RestartPolicy для init-контейнеров.

🧑‍🚒 RestartPolicy для Init-Контейнеров

В предыдущих версиях Kubernetes RestartPolicy для init-контейнеров была наследована от общей RestartPolicy пода. Теперь появилось новое поле RestartPolicy в спецификации init-контейнера, и единственным допустимым значением является "Always".

🚀 Always: Если установлена RestartPolicy "Always" для init-контейнера, это означает, что этот контейнер будет постоянно перезапускаться, даже если он завершил выполнение задачи.

🛠 Остальные контейнеры: Для остальных контейнеров или если поле RestartPolicy не указано в спецификации контейнера, поведение перезапуска определяется RestartPolicy на уровне пода и типом контейнера.

🏍 Sidecar: Это изменение позволяет создавать sidecar-контейнеры или контейнеры инициализации с RestartPolicy: Always, которые будут перезапускаться независимо от других контейнеров. После завершения работы всех обычных контейнеров с RestartPolicy "Always", все init-контейнеры с этой настройкой также будут завершены.

Это изменение предоставляет больше гибкости при управлении жизненным циклом init-контейнеров и позволяет им работать как легкие sidecar-контейнеры с возможностью постоянного перезапуска.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯21
👍4👨‍💻2
Forwarded from DevOps FM
Всем DevOps! 🖖

Наверняка вы слышали про историю с 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
👍3🔥2
Forwarded from Stanislav
Смерть от тысячи микросервисов / Хабр
https://habr.com/ru/articles/760426/
👍6🔥2
Kubeflow Summit 2023 on Friday, October 6th

- deployKF: A Better Way to Deploy Kubeflow and More
- Scale Your Models to Zero with Knative and Kserve
- How to use Kubeflow with MLflow
- The Journey to Supporting 60 Million DAUs starts by supporting 200 (доклад от Roblox)

Don’t miss out on this incredible opportunity to expand your knowledge and network with the Kubeflow community.

Get ready to dive into the world of Kubeflow, the open-source machine learning platform built on Kubernetes. Our summit will feature engaging sessions, hands-on workshops, and networking opportunities to connect with like-minded individuals.

Discover the latest advancements in Kubeflow, learn from industry leaders, and gain insights into real-world use cases. Whether you’re a developer, data scientist, or IT professional, this event is designed to inspire and empower you.
3👍1
🚀 Управлении ресурсами Kubernetes: Как Finalizers помогают в удалении

Понимание того, почему объекты Kubernetes иногда остаются неудаленными, даже после выполнения kubectl delete, может быть для эффективного управления вашими кластерами. Внутреннее устройство команды delete в Kubernetes не всегда гарантирует мгновенное удаление, и одной из причин могут быть Finalizers.

В обычных случаях, при отсутствии мешающих факторов, команда delete удаляет объект из кластера без проблем.


🔑 Finalizers - это ключи ресурсов, которые указывают на необходимость выполнения дополнительных операций перед удалением объекта. Например, некоторые Finalizers на объектах PersistentVolume (PV) и PersistentVolumeClaim (PVC) используются для предотвращения случайного удаления.

При наличии Finalizers, объект не удаляется моментально. Kubernetes заблокирует удаление из-за Finalizers и установит временную метку для удаления, но объект будет оставаться до тех пор, пока не будет удален его Finalizer.

Вы можете удалить Finalizer, чтобы разрешить удаление объекта. Это делается через патчинг объекта с помощью kubectl. Как только Finalizer убран, объект будет удален.


🔗 Owner References описывают, какие объекты связаны друг с другом. Это позволяет удалять зависимые ресурсы при удалении родительского объекта. К примеру, при удалении Deployment или StatefulSet, связанные Pod также будут удалены.

По умолчанию, установлена опция --cascade=true, что позволяет удалить объект и его зависимости. Но можно также использовать опцию --cascade=orphan, чтобы удалить только объект, оставив зависимости.


🧩 Знание работы Finalizers и Owner References важно для управления ресурсами Kubernetes. Внимательно исследуйте причины наличия Finalizers перед ручным удалением. Ссылки на владельца помогают удалять связанные ресурсы, но будьте осторожны с финализаторами.

#kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
deployKF builds world-class ML Platforms on any Kubernetes cluster, within any cloud or environment, in minutes.

☝️ deployKF includes leading ML & Data tools from Kubeflow and more
🐫 deployKF has centralized configs that manage all aspects of the platform
🧵 deployKF supports in-place upgrades and can autonomously roll out config changes
🍀 deployKF lets you bring your own cluster dependencies like istio and cert-manager, if desired
🐳 deployKF uses ArgoCD Applications to provide native GitOps support

https://www.youtube.com/watch?v=VggtaOgtBJo
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🎉1
Согласованность баз данных в контексте доступности и задержек.

🚀 Давайте представим, что вы создаете сложную систему, и важно, чтобы все пользователи видели одинаковую информацию. Однако существует постоянный баланс между скоростью обновления данных и уверенностью в том, что они актуальны для всех.

📊 Что такое согласованность? Это просто вопрос о том, насколько точно данные в базе отражают реальное положение дел. Это то, что мы ищем, но за ней стоят некоторые нюансы.

🛠️ Чем выше степень согласованности, тем больше времени требуется для обновления данных. И тем менее надежной становится система, особенно при сбоях. Это приводит нас к теореме PACELC.

🤔 Суть теоремы в том, что в распределенных системах у нас есть компромисс. Когда что-то идет не так, и сеть разделяет систему, мы должны выбирать между доступностью (данные всегда доступны, даже если немного устарели) и согласованностью (данные всегда актуальны, но это занимает больше времени).

👩‍💻 Так что каждый разработчик должен учитывать этот баланс между скоростью и надежностью при работе с базой данных. Это фундаментальное понимание, которое помогает создавать эффективные и надежные системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
6 Archetypes of Broken Ownership

Если принцип «You build it, you run it!» требует авторитета, знаний и ответственности, что произойдет, если что-то из этого отсутствует?

👑 Отсутствие авторитета:

Если вы не контролируете ситуацию, вы не сможете эффективно нести за нее ответственность. Важен авторитет и возможность влияния.

🤓 Отсутствие знаний:

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

📄 Отсутствие опыта:

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

🔦 Понимание, ответственность и опыт — ключи к успешному управлению.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🤡1
Горизонтальное автомасштабирование сервисов на основе метрик Message Queue для RabbitMQ

В статье описывается, как использовать KEDA, инструмент автомасштабирования для Kubernetes на основе внешних метрик, например, горизонтальное автомасштабирование Pod'ов на основе метрик очереди сообщений для RabbitMQ.
👍63