Как разрешить доступ к виртуальной машине Compute Engine в Airflow (Google Cloud Composer) - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь запустить команду bash в этом шаблоне ssh user@host "my bash command", используя BashOperator в Airflow. Это работает локально, потому что у меня есть публичный ключ на целевой машине.

Но я бы хотел запустить эту команду в Google Cloud Composer, которая называется Airflow + Google Kubernetes Engine. Я понял, что основная программа Airflow запущена в 3 пакетах, названных по этому шаблону airflow-worker-xxxxxxxxx-yyyyy.

Наивным решением было создание ключей ssh ​​для каждого модуля и добавление его открытого ключа на целевой компьютер в Compute Engine. Решение работало до сегодняшнего дня, так или иначе мои 3 модуля изменились, поэтому мои ключи ssh исчезли. Это было определенно не лучшее решение.

У меня есть 2 вопроса:

  • Почему Google Cloud Composer изменил мои стручки?
  • Как мне решить мою проблему?

1 Ответ

0 голосов
/ 14 ноября 2018

Перезапуски стручков не являются специфическими для Composer. Я бы сказал, что это больше связано с самим kubernetes :

Стручки не предназначены для использования в качестве долговечных объектов.

Таким образом, в общем случае пакеты могут быть перезапущены по разным причинам, поэтому вам не следует полагаться на любые изменения, которые вы вносите в них.

Как мне решить мою проблему??

Вы можете решить эту проблему, учитывая, что Cloud Composer создает корзину Cloud Storage и связывает ее с вашей средой.Вы можете получить доступ к различным папкам этого ведра от любого из ваших работников.Таким образом, вы можете сохранить свой ключ (вы можете использовать только одну пару ключей) в «gs: // bucket-name / data», к которому вы можете получить доступ через сопоставленный каталог «/ home / airflow / gcs / data». Документы здесь

...