Terraform创建Cloud Dataflow Workbench实例后Notebook无法启动,需特定配置?
问题
通过Terraform部署Google Cloud Dataflow Workbench实例时,使用容器镜像块搭配Notebook实例资源搭建Apache Beam环境(用户托管Notebook环境),尝试从控制台打开Notebook出现524错误。查看后端VM错误日志发现,notebook-collection agent无法连接Jupyter API服务器,服务器未启动。
注:手动创建相同实例可正常启动Notebook,排除防火墙、网络、服务账号/角色等问题。
疑问:是否需要在Terraform的容器镜像块中配置特定参数,才能让Notebook正常启动?
Terraform代码片段:
resource "google_notebooks_instance" "instance" { name = "notebooks-instance" location = "us-central1-a" machine_type = "e2-medium" container_images { repository = "gcr.io/deeplearning-platform-release/beam-notebooks" tag = "latest" } service_account = "my@service-account.com" install_gpu_driver = true boot_disk_type = "PD_SSD" boot_disk_size_gb = 110 no_public_ip = true no_proxy_access = false network = data.google_compute_network.my_network.id subnet = data.google_compute_subnetwork.my_subnetwork.id labels = { k = "val" } metadata = { proxy-mode=service-account terraform = "true" } }
解决方案
需要在container_images块中添加container_image_type参数并设置为USER_MANAGED,具体修改如下:
resource "google_notebooks_instance" "instance" { name = "notebooks-instance" location = "us-central1-a" machine_type = "e2-medium" container_images { repository = "gcr.io/deeplearning-platform-release/beam-notebooks" tag = "latest" container_image_type = "USER_MANAGED" # 新增关键参数 } service_account = "my@service-account.com" install_gpu_driver = true boot_disk_type = "PD_SSD" boot_disk_size_gb = 110 no_public_ip = true no_proxy_access = false network = data.google_compute_network.my_network.id subnet = data.google_compute_subnetwork.my_subnetwork.id labels = { k = "val" } metadata = { proxy-mode=service-account terraform = "true" } }
原因说明
使用自定义容器镜像搭建用户托管Notebook环境时,Terraform的google_notebooks_instance资源必须明确指定container_image_type为USER_MANAGED。默认情况下如果缺失该参数,资源会采用GCP托管镜像的启动流程,和用户托管容器的初始化逻辑不匹配,导致Jupyter服务无法正常启动。手动创建实例时,控制台会自动为用户托管类型配置该参数,所以不会出现问题。
内容的提问来源于stack exchange,提问作者Muralidharan
相关产品推荐
相关产品推荐

