Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

363
Visualizações
Problema al ejecutar gcsfuse en Google App Engine

Estoy tratando de ejecutar Airflow Webserver en App Engine Flexible, sin embargo, para que funcione, necesito un cubo GCS montado. Estoy usando tiempo de ejecución personalizado. La razón por la que lo hago es para obtener un punto final seguro que App Engine proporciona junto con IAP.

Mi app.yaml es un archivo simple con nombre de servicio, entorno y tiempo de ejecución. Mi Dockerfile es un montón de apt-get install s y en CMD hay gcsfuse montando y ejecutando el servidor web de flujo de aire, no es un gran problema.

El error que recibo cuando intento usar gcsfuse en App Engine es:

 daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running fusermount: exit status 1 stderr: fusermount: fuse device not found, try 'modprobe fuse' first

Sé que existe Google Composer, pero es demasiado caro para mis necesidades. Así que prefiero crear una máquina virtual con un programador y un servidor web en GAE, compartiendo un grupo de GCS, similar a lo que ofrece Composer, pero sin toda esa alta disponibilidad y el costo insano de las cosas simples que quiero ejecutar.

Estoy buscando hacer esto en App Engine, todas las respuestas que he encontrado hasta ahora mencionan GKE por alguna razón.

Sé que es un problema de privilegios, sin embargo en App Engine no veo ninguna opción para establecer privilegios, una forma de hacerlo sería muy útil.

¿Es posible hacer lo que quiero hacer en App Engine?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto es posible. Le mostraré cómo hacerlo manualmente, es posible que deba utilizar un script de shell para tratar con varias instancias.

  1. definir varios vars utilizados en este manual
 service=YOUR_APPENGINE_VERSION version=YOUR_APPENGINE_VERSION project=PROJECTID
  1. obtener lista de instancias
 gcloud app instances list --project $project SERVICE VERSION ID VM_STATUS DEBUG_MODE default *************** instance-id-1 RUNNING YES default *************** instance-id-2 RUNNING
  1. ssh en una instancia
 gcloud app instances ssh instance-id-1 --service $service --version $version --project $project
  1. obtener identificación de imagen
 docker ps | grep gaeapp | awk '{print $2}'

obtendrás un ID de imagen

  1. obtener env de gaeapp
 docker exec gaeapp env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=***** GAE_MEMORY_MB=614 GAE_INSTANCE=**** GAE_SERVICE=default PORT=8080 GCLOUD_PROJECT=***** GAE_VERSION=***** GOOGLE_CLOUD_PROJECT=*****
  1. reiniciar gaeapp con privilegios
 docker rm -f gaeapp docker run --privileged -d -p 8080:8080 --name gaeapp -e GAE_MEMORY_MB=614 -e GAE_INSTANCE=instance-id-1 -e GAE_SERVICE=$service -e PORT=8080 -e GCLOUD_PROJECT=$project -e GAE_VERSION=$version -e GOOGLE_CLOUD_PROJECT=$project $imageid
  1. ingrese gaeapp (suponga que tiene gcsfuse instalado y tiene la clave de cuenta de servicio json: /test-service-account.json )
 $ docker exec -it gaeapp bash [in gaeapp] # GOOGLE_APPLICATION_CREDENTIALS=/test-service-account.json gcsfuse BUCKET /mnt/ Using mount point: /mnt Opening GCS connection... Opening bucket... Mounting file system... File system has been successfully mounted.
over 4 years ago · Santiago Trujillo Relatório

0

Para ser honesto, he probado todas las soluciones posibles. y finalmente la solución anterior funcionó. Desafortunadamente, funcionó solo durante 2-3 días. Después de un tiempo, App Engine reinicia las instancias automáticamente, sin fallas en la aplicación. Por lo tanto, todos los cambios para gcsfuse desaparecieron.

Lo principal para que gcsfuse funcione en un contenedor es ejecutar la imagen de la ventana acoplable en modo privilegiado. Y App Engine no lo permite.

La solución final que estamos usando es GKE, que funciona bien.

Nota: Se esperaba que GAE tuviera alguna provisión para el modo privilegiado, pero ahora no la tiene. En el futuro, el equipo de Google puede presentarlo. ¡Gracias!

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda