Что такое AirFlow Kubernetes Operator и как это работает: обзор решений от K8s и Google

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Вчера мы рассказали, почему запускать Airflow на Kubernetes – это эффективно и выгодно для всех участников batch-процессов с большими данными (Big Data): разработчиков Data Flow, Data Scientist’ов, аналитиков и инженеров. Сегодня рассмотрим, что такое Airflow Kubernetes Operator и чем он отличается от подобной разработки компании Google.

Начнем с уточнения понятия оператора Эйрфлоу. По сути, оператор определяет задачу. В частности, при создании DAG для отправки задания (job) в Apache Spark или определения собственной функции на языке Python, пользователь Эйрфлоу будет использовать оператор, например, «SparkSubmitOperator» или «PythonOperator» соответственно. По умолчанию фреймворк включает набор встроенных операторов для Apache Spark, Hive, BigQuery и Amazon EMR. Также этот batch-фреймворк позволяет DevOps-инженерам разрабатывать свои собственные операторы и коннекторы с помощью REST-API и специальных плагинов [1].

Тем не менее, уже готовый Airflow Kubernetes Operator предоставляет пользователям следующие преимущества [1]:

Схематично AirFlow Kubernetes Operator работает по следующему принципу [1]:

AirFlow Kubernetes Operator
AirFlow Kubernetes Operator от K8s

Немного по-другому устроен оператор Эйрфлоу для Kubernetes от корпорации Google. Прежде всего, отметим, что данное решение компания не поддерживает официально, а лишь публикует его альфа-версии на GitHub [2]. При этом оператор определяется как контроллер приложения, который расширяет API Kubernetes для создания, настройки и управления приложениями с отслеживанием состояния, инкапсулируя область действия приложения и ежедневные операции. API оператора реализуется через расширение существующего API Kubernetes определениями пользовательских ресурсов (CRD, Custom Resources Definitions), которые декларативно описывают намерение. Эти ресурсы сериализуются как json и хранятся на сервере API. Наблюдая за CRD, контроллер выполняет управляющие действия для перевода системы в желаемое состояние. Благодаря этому платформа K8s пригодна для сложных приложений с сохранением состоянием (stateful).

Таким образом, оператор K8s – это совокупность API K8s с CRD (декларативная спецификация) и пользовательским контроллером. Все это необходимо, чтобы эффективно использовать Кубернетес для развертывания Эйрфлоу [3].

С учетом вышеизложенного, Airflow Operator — это пользовательский оператор Kubernetes, состоящий из 2-х частей: контроллеры AirflowBase (общие компоненты) и AirflowCluster (для индивидуального пользователя). Это разделение обеспечивает изоляцию, позволяя каждому пользователю этого фреймворка работать со своими уникальными плагинами, операторами и пакетами [3]:

Таким образом, решение от Google Cloud Platform упрощает развертывание и управление Apache Airflow в K8s [2]:

Airflow, Kubernetes, DevOps, Google Cloud Platform
Airflow Operator для Kubernetes от Google Cloud Platform

Несмотря на готовую архитектуру предоставляемого решения от Google, анализ документации на GitHub показывает, что многие идеи еще находятся в стадии разработки (todo) [3]. Тем не менее, его можно принять за основe при реализации собственного оператора Кубернетес для Airflow или другого Big Data фреймворка. В следующей статье мы рассмотрим еще 2 способа использования Эйрфлоу с K8s: с помощью KubernetesPodOperator и KubernetesExecutor [4].

Как создать собственный оператор Airflow для Kubernetes или обеспечить эффективное управление batch-процессами обработки больших данных другим способом, вы узнаете на наших образовательных курсах в лицензированном учебном центре обучения и повышения квалификации руководителей и ИТ-специалистов (менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data) в Москве:

Источники


Источник: www.bigdataschool.ru

Комментарии: