#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
, и это сработало. Не понимал, что по умолчанию это не будет использовать все пространства имен.