Расположение / home / airflow

#google-cloud-platform #airflow #google-cloud-composer

#google-облачная платформа #воздушный поток #google-cloud-composer

Вопрос:

Я указал 3 узла при создании среды cloud composer. Я пытался подключиться к рабочим узлам через SSH, но я не могу найти каталог airflow в / home. Итак, где именно она расположена?

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

1. Попробуйте echo $AIRFLOW_HOME .

Ответ №1:

Cloud Composer запускает Airflow на GKE, поэтому вы не найдете данные непосредственно ни на одном из экземпляров GCE хоста. Вместо этого процессы Airflow выполняются в контейнерах, управляемых Kubernetes, которые либо монтируют, либо синхронизируют данные с /home/airflow каталогом. Чтобы найти каталог, вам нужно будет заглянуть внутрь запущенного контейнера.

Поскольку каждая среда хранит свои данные о воздушном потоке в корзине GCS, вы можете альтернативно проверять файлы с помощью облачной консоли или gsutil . Если вы действительно хотите просматривать /home/airflow с помощью оболочки, вы можете использовать kubectl exec , которая позволяет запускать команды / открывать оболочку в любом модуле / контейнере в кластере Kubernetes. Например:

 # Obtain the name of the Composer environment's GKE cluster
$ gcloud composer environments describe $ENV_NAME

# Fetch Kubernetes credentials for that cluster
$ gcloud container cluster get-credentials $GKE_CLUSTER_NAME
  

Получив учетные данные Kubernetes, вы можете перечислить запущенные модули и подключать к ним SSH:

 # List running pods
$ kubectl get pods

# SSH into a pod
$ kubectl exec -it $POD_NAME bash
airflow-worker-a93j$ ls /home/airflow
  

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

1. Я только что попробовал это, и я не вижу никого из рабочих, когда я перечисляю модули?

2. Проверьте пространство имен Composer: kubectl get ns | grep composer .

3. В итоге получилось kubectl get pods --all-namespaces , и это сработало. Не понимал, что по умолчанию это не будет использовать все пространства имен.