База данных 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).