Проблемы с настройкой кластера Terraform dataproc

Я пытаюсь развернуть частный кластер данных (1 м, 2 Вт) в GCP через terraform. Также должны потребоваться дополнительные компоненты, такие как docker, anaconda и jupyter. Ниже приведены мои опасения,

  1. Я пытаюсь добавить image_version и optional_components в software_config, как показано ниже. Это выполнимо?
    software_config {

      image_version = "1.4.21-debian9"
      override_properties = {
        "dataproc:dataproc.allow.zero.workers"          = "true"
      }
      optional_components = [ "DOCKER", "ANACONDA", "JUPYTER" ]
    }       
  1. Если вышеперечисленное невозможно, могу ли я использовать initialize_actions, как показано ниже?
    initialization_action {
      script      = "gs://dataproc-initialization-actions/conda/install-conda-env.sh"
      timeout_sec = 500
      }
  1. Как мне назначить разрешения / ключи для узлов, которые запускаются через terraform. так что пользователи могут получить доступ к узлам с его помощью после подготовки. Я пытался использовать, как показано ниже,
    gce_cluster_config {
      tags    = ["env", "test"]
      network = "${google_compute_network.dp-network.name}"
      internal_ip_only = true
      service_account = "[email protected]"
    }

Цените ваш вклад,

Спасибо!

Обновление: я могу развернуть кластер без дополнительных компонентов, указанных в файле software_config. Но если я это сделаю, то он не работает с ошибкой и попросил меня сообщить об этом.

gce_cluster_config {
      network               = "${google_compute_network.dataproc-network.name}"
      internal_ip_only      = true
      tags                  = ["env", "staging"]
      zone                  = "${var.zone}"
      service_account       = "${var.service_account}"
      service_account_scopes= [
        "https://www.googleapis.com/auth/monitoring",
        "useraccounts-ro",
        "storage-rw",
        "logging-write",
      ]
    }

    # We can define multiple initialization_action blocks    
    initialization_action {
      script      = "gs://dataproc-initialization-actions/stackdriver/stackdriver.sh"
      timeout_sec = 500
    }
    initialization_action {
      script      = "gs://dataproc-initialization-actions/jupyter/jupyter.sh"
      timeout_sec = 500 
    }

person Sid    schedule 06.03.2020    source источник
comment
Не могли бы вы подробнее остановиться на № 3, поскольку там есть несколько отдельных вещей - разрешения пользователей, пользователи, получающие доступ к узлам, узлы, обращающиеся к ресурсам GCP, таким как GCS / BQ. Там написано, что вы пробовали ... не получилось? Если да, то как?   -  person tix    schedule 06.03.2020
comment
Я имею в виду, что тот, кто добавил в соответствующий проект GCP, должен иметь доступ ко всем ресурсам в рамках этого проекта. Итак, если я разверну под ним кластер dataproc с той же учетной записью службы, должно ли этого быть достаточно для получения доступа к узлам? Мне удалось успешно развернуть кластер без указания дополнительных компонентов в software_config. Если я упомянул, значит, он выдает ошибку и попросил меня сообщить об этом в github.   -  person Sid    schedule 06.03.2020


Ответы (1)


Либо 1, либо 2 подойдут. Скорее всего, происходит то, что поставщик Terraform для Dataproc не синхронизирован с API, поэтому, пожалуйста, сообщите об ошибке, как это было предложено ошибкой.

Что касается 3, здесь есть небольшая путаница - позвольте мне попытаться прояснить это. Пользователи будут иметь доступ к ресурсам (кластерам), когда вы предоставите им привязки IAM. Это не имеет ничего общего с тем, как вы создаете кластер. Либо Editor, либо Dataproc Editor, либо пользовательская роль позволит им взаимодействовать с кластерами.

Это хороший ход для установки internal_ip_only, поскольку это делает кластер недоступным из общедоступного Интернета, но это также означает, что gcloud compute ssh для отдельных узлов не будет работать.

Наконец, любой пользователь, имеющий разрешение на взаимодействие с кластером, по существу имеет те же разрешения, что и учетная запись службы. В этой статье объясняется этот https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals

person tix    schedule 06.03.2020
comment
Спасибо. Я сообщил об ошибке и принял ваш ответ. оценил! - person Sid; 08.03.2020
comment
Обратите внимание, что IAP все еще можно использовать для вычисления ssh в gcloud во внутренних экземплярах. - person BusiPlay; 22.12.2020