Запуск докера от Google Cloud Composer - PullRequest
0 голосов
/ 05 июля 2018

Что касается документации, рабочие узлы воздушного потока Google Cloud Composer обслуживаются из выделенного кластера kubernetes:

enter image description here

У меня есть шаг Docker, содержащий ETL, который я хотел бы выполнить с использованием воздушного потока, предпочтительно в том же Kubernetes, где размещены рабочие ИЛИ в выделенном кластере.

Каков наилучший способ запуска Docker Operation из среды воздушного потока Cloud Composer?

Прагматические решения 101

1 Ответ

0 голосов
/ 26 июля 2018

Google Cloud Composer только что выпустил в General Availability, и теперь вы можете использовать KubernetesPodOperator для запуска модулей в том же кластере GKE, который использует управляемый поток воздуха.

Убедитесь, что ваша среда Composer не ниже 1.0.0

Пример оператора:

import datetime

from airflow import models
from airflow.contrib.operators import kubernetes_pod_operator

with models.DAG(
    dag_id='composer_sample_kubernetes_pod',
    schedule_interval=datetime.timedelta(days=1),
    start_date=YESTERDAY) as dag:
# Only name, namespace, image, and task_id are required to create a
# KubernetesPodOperator. In Cloud Composer, currently the operator defaults
# to using the config file found at `/home/airflow/composer_kube_config if
# no `config_file` parameter is specified. By default it will contain the
# credentials for Cloud Composer's Google Kubernetes Engine cluster that is
# created upon environment creation.
kubernetes_min_pod = kubernetes_pod_operator.KubernetesPodOperator(
    # The ID specified for the task.
    task_id='pod-ex-minimum',
    # Name of task you want to run, used to generate Pod ID.
    name='pod-ex-minimum',
    # The namespace to run within Kubernetes, default namespace is
    # `default`. There is the potential for the resource starvation of
    # Airflow workers and scheduler within the Cloud Composer environment,
    # the recommended solution is to increase the amount of nodes in order
    # to satisfy the computing requirements. Alternatively, launching pods
    # into a custom namespace will stop fighting over resources.
    namespace='default',
    # Docker image specified. Defaults to hub.docker.com, but any fully
    # qualified URLs will point to a custom repository. Supports private
    # gcr.io images if the Composer Environment is under the same
    # project-id as the gcr.io images.
    image='gcr.io/gcp-runtimes/ubuntu_16_0_4')

Дополнительные ресурсы:

...