Solución de problemas de creación de entornos

Cloud Composer 1 | Cloud Composer 2

En esta página, se proporciona información para solucionar problemas que podrían surgir durante la creación de entornos de Cloud Composer.

Para obtener información sobre la solución de problemas relacionados con la actualización de los entornos, consulta Solución de problemas de actualizaciones y entornos de actualización.

Cuando se crean entornos de Cloud Composer, la mayoría de los problemas ocurren debido a los siguientes motivos:

  • Problemas de permisos de la cuenta de servicio

  • Información incorrecta de firewall, DNS o enrutamiento

  • Problemas relacionados con la red Por ejemplo, configuración de VPC no válida, conflictos de direcciones IP o rangos de IP de red que son demasiado reducidos

  • Problemas relacionados con la cuota

  • Políticas de la organización incompatibles

No tienes permisos suficientes para crear un entorno

Si Cloud Composer no puede crear un entorno porque tu cuenta no tiene los permisos suficientes, se mostrarán los siguientes mensajes de error:

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission

o

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.

Solución: Asigna funciones a tu cuenta y a la cuenta de servicio de tu entorno como se describe en Control de acceso.

  • En Cloud Composer 2, asegúrate de que la cuenta de servicio del Agente de servicio de Cloud Composer (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) tenga asignada la función Extensión del agente de servicio de la API de Cloud Composer v2.

  • Asegúrate de que el agente de servicio de las API de Google (PROJECT_NUMBER@cloudservices.gserviceaccount.com) tenga asignada la función de Editor.

  • En la configuración de la VPC compartida, sigue las instrucciones para configurar una VPC compartida.

La cuenta de servicio del entorno no tiene permisos suficientes.

Cuando creas un entorno de Cloud Composer, debes especificar una cuenta de servicio que ejecute los nodos del clúster de GKE del entorno. Si esta cuenta de servicio no tiene suficientes permisos para la operación solicitada, Cloud Composer genera el siguiente error:

Errors in: [Web server]; Error messages:
  Creation of airflow web server version failed. This may be an intermittent
  issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}

Solución: Asigna funciones a tu cuenta y a la cuenta de servicio de tu entorno como se describe en Control de acceso.

Advertencias sobre los roles de IAM faltantes en cuentas de servicio

Cuando falla la creación de un entorno, Cloud Composer genera el siguiente mensaje de advertencia después de un error: The issue may be caused by missing IAM roles in the following Service Accounts ....

Este mensaje de advertencia destaca las posibles causas del error. Cloud Composer verifica los roles necesarios en las cuentas de servicio de tu proyecto y, si estos roles no están presentes, genera este mensaje de advertencia.

Solución: Comprueba que las cuentas de servicio mencionadas en el mensaje de advertencia tengan las funciones necesarias. Para obtener más información sobre las funciones y los permisos en Cloud Composer, consulta Control de acceso.

En algunos casos, puedes ignorar esta advertencia. Cloud Composer no verifica los permisos individuales asignados a los roles. Por ejemplo, si usas funciones personalizadas de IAM, es posible que la cuenta de servicio mencionada en el mensaje de advertencia ya tenga todos los permisos necesarios. En este caso, puedes ignorar esta advertencia.

No existe una red de VPC seleccionada para el entorno

Puedes especificar una red de VPC y una subred para crear tu entorno de Cloud Composer cuando la crees. Si no especificas una red de VPC, el servicio de Cloud Composer selecciona la VPC default y la subred default para la región y zona del entorno.

Si la red de VPC y la subred especificadas no existen, Cloud Composer genera el siguiente error:

Errors in: [GKE cluster]; Error messages:
        {"ResourceType":"gcp-types/container-v1:projects.locations.clusters","R
        esourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"P
        roject \"<your composer project>\" has no network named \"non-existing-
        vpc\".","status":"INVALID_ARGUMENT","statusMessage":"Bad
        Request","requestPath":"https://container.googleapis.com/
        v1/projects/<your composer
        project>/locations/<zone>/clusters","httpMethod":"POST"}}

Solución:

  • En Cloud Composer 2, puedes crear entornos que usen Private Service Connect en lugar de redes de VPC.
  • Antes de crear un entorno, asegúrate de que existan la red de VPC y la subred de tu entorno nuevo.

Configuración de red incorrecta

La creación de entornos de Cloud Composer requiere una configuración de red o DNS adecuada. Sigue estas instrucciones para configurar la conectividad con las APIs y los servicios de Google:

Si configuras entornos de Cloud Composer en un modo de VPC compartida, sigue también estas instrucciones de VPC compartida.

El entorno de Cloud Composer usa una subred para los nodos del clúster y los rangos de IP de los Pods y los Services. Si quieres garantizar la comunicación con estos y otros rangos de IP, sigue estas instrucciones para configurar las reglas de firewall:

También puedes verificar si hay entradas de registro dentro de las categorías de configuración GCE Networking y Subnetwork seleccionadas en Actividades para ver si se informaron errores durante la creación del entorno.

Problemas de cuotas encontrados cuando se crean entornos en redes a gran escala

Cuando creas entornos de Cloud Composer en redes a gran escala, puedes encontrar las siguientes limitaciones de cuota:

  • Se alcanza la cantidad máxima de intercambios de tráfico de VPC por red de VPC.
  • Se alcanza la cantidad máxima de rangos de IP de subred principales y secundarios.
  • Se alcanza la cantidad máxima de reglas de reenvío en el grupo de intercambio de tráfico para el balanceo de cargas TCP/UDP interno.

Solución:

Políticas de la organización incompatibles

Las siguientes políticas deben configurarse de forma correcta para que los entornos de Cloud Composer se puedan crear correctamente.

Política de la organización Cloud Composer 1 Cloud Composer 2
compute.disableSerialPortLogging Inhabilitado para las versiones anteriores a la 1.13.0; de lo contrario, cualquier valor Debe inhabilitarse
compute.requireOsLogin Debe inhabilitarse (se permite cualquier valor)
compute.vmCanIpForward Se debe permitir (obligatorio para los clústeres de GKE de Cloud Composer) cuando el modo nativo de la VPC (con alias de IP) no está configurado (se permite cualquier valor)
compute.vmExternalIpAccess Se debe permitir en entornos de IP públicas Se debe permitir en entornos de IP públicas
compute.restrictVpcPeering No se puede aplicar de manera forzosa No se puede aplicar de manera forzosa
compute.disablePrivateServiceConnectCreationForConsumers (se permite cualquier valor) No se puede rechazar "SERVICE_PRODUCERS" si se usa Private Service Connect

Para obtener más información, consulta la página Problemas conocidos y las Restricciones de las políticas de la organización.

Restringe los servicios usados en la organización o el proyecto

Los administradores de la organización o del proyecto pueden restringir los servicios de Google que se pueden usar en sus proyectos con la restricción de la política de la organización gcp.restrictServiceUsage.

Cuando usas esta política de la organización, es importante permitir todos los servicios que requiere Cloud Composer.

Mensaje de error 400: No se pudo implementar el servidor web de Airflow.

Este error puede deberse a un error en la creación del clúster de GKE del entorno IP privado debido a la superposición de rangos de IP.

Solución: Verifica los registros de cualquier falla en el clúster del entorno y resuelve el problema según el mensaje de error de GKE.

Cloud Build no puede compilar imágenes de entorno

Si la cuenta de servicio de Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com) no tiene la función Cuenta de servicio de Cloud Build (roles/cloudbuild.builds.builder) en tu proyecto, los intentos de crear o actualizar un entorno pueden fallar con errores relacionados con los permisos.

Por ejemplo, es posible que veas el mensaje denied: Permission "artifactregistry.repositories.uploadArtifacts" denied seguido de ERROR: failed to push because we ran out of retries en los registros de Cloud Build.

Para resolver este problema, asegúrate de que la cuenta de servicio de Cloud Build tenga el rol Cuenta de servicio de Cloud Build.

¿Qué sigue?