Как раскрутить облачный прокси в кластере облачных композиторов - PullRequest
0 голосов
/ 03 апреля 2019

Как раскрутить облачный прокси для кластера облачных композиторов

В настоящее время мы используем воздушный поток для управления заданиями и динамического создания DAG. Для этого один отдельный Dag написан для проверки таблицы базы данных в PostgreSQL на наличие существующих правил, и если правило активно / неактивно в PostgreSQL, мы вручную настроили отключение / включение динамических DAG в Airflow. Теперь мы будем использовать Google self Управляемый Cloud Composer, но проблема в том, что у нас нет доступа к базе данных Cloud Composer. Как мы можем использовать облачный SQL-прокси для решения этой проблемы?

1 Ответ

0 голосов
/ 03 апреля 2019

База данных Cloud Composer фактически уже доступна, поскольку в подключенном к GKE кластеру среды работает прокси-сервер Cloud SQL.Вы можете использовать имя сервиса airflow-sqlproxy-service для подключения к нему из кластера, используя root.Например, в Composer 1.6.0, и если у вас есть учетные данные кластера Kubernetes, вы можете просмотреть список запущенных модулей:

$ kubectl get po --all-namespaces
composer-1-6-0-airflow-1-9-0-6f89fdb7   airflow-database-init-job-kprd5                                  0/1     Completed   0          1d
composer-1-6-0-airflow-1-9-0-6f89fdb7   airflow-scheduler-78d889459b-254fm                               2/2     Running     18         1d
composer-1-6-0-airflow-1-9-0-6f89fdb7   airflow-worker-569bc59df5-x6jhl                                  2/2     Running     5          1d
composer-1-6-0-airflow-1-9-0-6f89fdb7   airflow-worker-569bc59df5-xxqk7                                  2/2     Running     5          1d
composer-1-6-0-airflow-1-9-0-6f89fdb7   airflow-worker-569bc59df5-z5lnj                                  2/2     Running     5          1d
default                                 airflow-redis-0                                                  1/1     Running     0          1d
default                                 airflow-sqlproxy-668fdf6c4-vxbbt                                 1/1     Running     0          1d
default                                 composer-agent-6f89fdb7-0a7a-41b6-8d98-2dbe9f20d7ed-j9d4p        0/1     Completed   0          1d
default                                 composer-fluentd-daemon-g9mgg                                    1/1     Running     326        1d
default                                 composer-fluentd-daemon-qgln5                                    1/1     Running     325        1d
default                                 composer-fluentd-daemon-wq5z5                                    1/1     Running     326        1d

Вы можете увидеть, что один из рабочих модулей называется airflow-worker-569bc59df5-x6jhl и работаетв пространстве имен composer-1-6-0-airflow-1-9-0-6f89fdb7.Если я подключаюсь к одному из них по SSH и запускаю MySQL CLI, у меня есть доступ к базе данных:

$ kubectl exec \
    -it airflow-worker-569bc59df5-x6jhl \
    --namespace=composer-1-6-0-airflow-1-9-0-6f89fdb7 -- \
      mysql \
        -u root \
        -h airflow-sqlproxy-service.default

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27147
Server version: 5.7.14-google-log (Google)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

TL; DR для всего, что работает в ваших DAG, подключайтесь с помощью root@airflow-sqlproxy-service.default без пароля.Это позволит подключиться к базе метаданных Airflow через Cloud SQL Proxy, который уже работает в вашей среде Composer.


Если вам нужно подключиться к базе данных, которая не Airflowбазы данных, запущенной в Cloud SQL, затем вы можете раскрутить другой прокси-сервер, развернув новый прокси-модуль в GKE (как если бы вы развернули что-либо еще в кластере Kubernetes).

...