Желаемый модуль GKE не найден, Google Cloud Composer - PullRequest
0 голосов
/ 01 апреля 2019

Я использую Google cloud composer и создал среду composer. Среда Composer готова (имеет зеленую галочку), сейчас я пытаюсь установить переменные, используемые в коде Python DAG, с помощью оболочки облака Google.

установить переменные:

     gcloud composer environments run test-environment \
       --location us-central1 variables -- \
       --set gcp_project xxx-gcp

Точное сообщение об ошибке:

  ERROR: (gcloud.composer.environments.run) Desired GKE pod not found. If the environment was recently started, please wait and retry.

Я пытался выполнить следующие действия в рамках исследования, но каждый раз получал одну и ту же ошибку.Я создал новую среду, используя пользовательский интерфейс, а не команды оболочки Google.Я проверил стручки в двигателе kubernetes и все зеленые, не видел никаких проблем.Я проверил API композитора, биллинг kubernetes, все необходимые API включены.

Мне назначена роль «Редактор».

добавлен скриншот Я впервые увидел некоторые ошибки

enter image description here

enter image description here

Ошибка с кодом выхода 1 Руководство по устранению неполадок Google описывает:Если код выхода равен 1, то произошел сбой контейнера из-за сбоя приложения.

1 Ответ

2 голосов
/ 02 апреля 2019

Это побочный эффект Composer версии 1.6.0, если вы используете google-cloud-sdk , который слишком стар, потому что теперь он запускает модули в пространствах имен, отличных от default.Ошибка, которую вы видите, является результатом поиска модулей Kubernetes в пространстве имен по умолчанию и , когда они не могут их найти .

Чтобы исправить это, запустите gcloud components update.Если вы еще не можете выполнить обновление, обходной путь для выполнения команд Airflow состоит в том, чтобы вручную подключить SSH к модулю и запустить airflow.Для начала получите учетные данные кластера GKE:

$ gcloud container clusters get-credentials $COMPOSER_GKE_CLUSTER_NAME

Получив учетные данные, вы должны выяснить, в каком пространстве имен запущены модули (которые также можно найти с помощью Cloud Console):

$ kubectl get namespaces
NAME                                    STATUS   AGE
composer-1-6-0-airflow-1-9-0-6f89fdb7   Active   17h
default                                 Active   17h
kube-public                             Active   17h
kube-system                             Active   17h

Затем вы можете использовать SSH в любой планировщик / рабочий модуль и запускать команды:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl airflow list_dags -r

Вы также можете открыть оболочку, если предпочитаете:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl bash

airflow@airflow-worker-569bc59df5-x6jhl:~$ airflow list_dags -r

Неудачный airflow-database-init-job задания не связаны и не вызовут проблем в вашей среде Composer.

...