Облачный композитор Google Kubernetes с файлом gitlab ci yaml - PullRequest
0 голосов
/ 05 октября 2018

Я работаю над развертыванием конвейера CI gitlab для запуска DAG-компилятора облака Google. Ниже приведен .yaml, который я написал:

stages:
- deploy

deploy:
  stage: deploy
  image: google/cloud-sdk
  script:
    - apt-get update && apt-get --only-upgrade install kubectl google-cloud-sdk
    - gcloud config set project $GCP_PROJECT_ID
    - gsutil cp   plugins/*.py   ${PLUGINS_BUCKET}
    - gsutil cp   dags/*.py   ${DAGS_BUCKET}
    - kubectl get pods
    - gcloud composer environments run ${COMPOSER_ENVIRONMENT}  --location ${ENVIRONMENT_LOCATION}   trigger_dag   -- ${DAG_NAME}

К сожалению, выполнение pipleine завершается с ошибкой ниже:

     $ gcloud config set project $GCP_PROJECT_ID
Updated property [core/project].
$ gsutil cp   plugins/*.py   ${PLUGINS_BUCKET}
Copying file://plugins/dataproc_custom_operators.py [Content-Type=text/x-python]...
/ [0 files][    0.0 B/  2.3 KiB]                                                
/ [1 files][  2.3 KiB/  2.3 KiB]                                                
Operation completed over 1 objects/2.3 KiB.                                      
$ gsutil cp   dags/*.py   ${DAGS_BUCKET}
copying file://dags/frrm_infdeos_workflow.py [Content-Type=text/x-python]...
/ [0 files][    0.0 B/  3.3 KiB]                                                
/ [1 files][  3.3 KiB/  3.3 KiB]                                                
Operation completed over 1 objects/3.3 KiB.                                      
$ gcloud composer environments run ${COMPOSER_ENVIRONMENT}  --location ${ENVIRONMENT_LOCATION}   trigger_dag   -- ${DAG_NAME}
kubeconfig entry generated for europe-west1-nameenvironment-a5456e0c-gke.
ERROR: (gcloud.composer.environments.run) No running GKE pods found. If the environment was recently started, please wait and retry.
ERROR: Job failed: command terminated with exit code 1

У вас есть идеи, как это исправить, пожалуйста?С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 17 января 2019

У меня была та же проблема, что и у @scalacode.Для меня решение состояло в том, что gitlab-runner работал в другом проекте GCP, отличном от среды Composer, поэтому он потерпел неудачу без указания этой ошибки.Запуск gitlab-runner в том же проекте, что и в среде Composer, исправил проблему.

0 голосов
/ 09 октября 2018

Кажется, Composer не может получить информацию о кластере pods / GKE.Это может быть по ряду причин: от кластера GKE, не создающего узлы, до модулей, находящихся в цикле сбоя.

Я заметил, что в сценарии вы не «get-credentials» для аутентификации в кластере.При выполнении команд в кластере GKE через интерфейс командной строки обычно сначала необходимо сначала пройти проверку подлинности в кластере с помощью command .Чтобы сделать это с помощью composer:

gcloud composer environments describe ${COMPOSER_ENVIRONMENT} --location ${ENVIRONMENT_LOCATION} --format="get(config.gkeCluster)"

Это вернет что-то в форме: projects / PROJECT / zone / ZONE / clusters / CLUSTER Затем выполните:

gcloud container clusters get-credentials ${CLUSTER} --zone ${ZONE}

После того, как вы подтвердите подлинностьк кластеру в сценарии, посмотрите, сможет ли он завершиться.Если нет, попробуйте запустить kubectl get pods , чтобы увидеть, что происходит с модулями / если они существуют.

Если вы видите, что многие модули перезапускаются или вообще не находятся в состоянии «выполняется / завершено», проблема может быть связана с конфигурацией модуля.Если вы вообще не видите стручки, возможно, развертывание завершилось неудачно.Проверьте развертывание с помощью команды kubectl get deployments .

Должны присутствовать планировщики воздушного потока развертываний, airflow-sqlproxy и airflow-worker.Если этих трех развертываний нет, среда, вероятно, была подделана, и было бы проще создать новую среду.

...