Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se proporciona información para solucionar problemas que pueden surgir al crear entornos de Cloud Composer.
Para obtener información sobre cómo solucionar problemas relacionados con la actualización de entornos, consulta Solucionar problemas de actualizaciones del entorno.
Cuando se crean entornos de Cloud Composer, la mayoría de los problemas se deben a los siguientes motivos:
Problemas con los permisos de la cuenta de servicio.
Información incorrecta sobre el cortafuegos, el DNS o el enrutamiento.
Problemas relacionados con la red. Por ejemplo, una configuración de VPC no válida, conflictos de direcciones IP o intervalos de IP de red demasiado estrechos.
Problemas relacionados con las cuotas.
Políticas de organización incompatibles.
No tienes permisos suficientes para crear un entorno
Si Cloud Composer no puede crear un entorno porque tu cuenta no tiene suficientes permisos, muestra 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 roles tanto a tu cuenta como a la cuenta de servicio de tu entorno, tal como se describe en Control de acceso.
En Cloud Composer 2, asegúrate de que la cuenta de servicio Agente de servicio de Cloud Composer (
service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com
) tenga asignado el rol Extensión de agente de servicio de la API de Cloud Composer v2.Asegúrate de que el agente de servicio de las APIs de Google (
PROJECT_NUMBER@cloudservices.gserviceaccount.com
) tenga asignado el rol Editor.En la configuración de VPC compartida, sigue las instrucciones para configurar la VPC compartida.
La cuenta de servicio del entorno no tiene permisos suficientes
Al crear 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 muestra 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 roles tanto a tu cuenta como a la cuenta de servicio de tu entorno, tal como se describe en Control de acceso.
Advertencias sobre la falta de roles de gestión de identidades y accesos en cuentas de servicio
Si no se puede crear un entorno, Cloud Composer genera el siguiente mensaje de advertencia después de que se haya producido 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 comprueba si las cuentas de servicio de tu proyecto tienen los roles necesarios y, si no es así, genera este mensaje de advertencia.
Solución: Comprueba que las cuentas de servicio mencionadas en el mensaje de advertencia tengan los roles necesarios. Para obtener más información sobre los roles y permisos en Cloud Composer, consulta el artículo sobre el control de acceso.
En algunos casos, puedes ignorar esta advertencia. Cloud Composer no comprueba los permisos individuales asignados a los roles. Por ejemplo, si usas roles de gestión de identidades y accesos personalizados, 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 tu entorno de Cloud Composer al crearlo. Si no especifica una red VPC, el servicio Cloud Composer seleccionará la red VPC default
y la subred default
de la región y la zona del entorno.
Si la red de VPC y la subred especificadas no existen, Cloud Composer muestra 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 utilicen Private Service Connect en lugar de redes de VPC.
- Antes de crear un entorno, asegúrate de que la red VPC y la subred de tu nuevo entorno existan.
Configuración de red incorrecta
Para crear entornos de Cloud Composer, es necesario configurar correctamente la red o el DNS. Sigue estas instrucciones para configurar la conectividad con las APIs y los servicios de Google:
Si configuras entornos de Cloud Composer en el modo de VPC compartida, sigue también las instrucciones de VPC compartida.
Un entorno de Cloud Composer usa una subred para los nodos del clúster y los intervalos de IP para los pods y los servicios. Para asegurar la comunicación con estos y otros intervalos de IPs, sigue estas instrucciones para configurar las reglas de cortafuegos:
También puedes consultar las entradas de registro de las categorías de configuración GCE Networking
y Subnetwork
en Cloud Logging para ver si se han notificado errores durante la creación del entorno:
Cloud Logging
Problemas de cuota al crear entornos en redes a gran escala
Al crear entornos de Cloud Composer en redes a gran escala, puede que te encuentres con las siguientes limitaciones de cuota:
- Se ha alcanzado el número máximo de emparejamientos de VPC por red de VPC.
- Se ha alcanzado el número máximo de intervalos de IP de subred principales y secundarias.
- Se ha alcanzado el número máximo de reglas de reenvío del grupo de emparejamiento para el balanceo de carga TCP/UDP interno.
Solución:
- En Cloud Composer 2, puedes crear entornos que utilicen Private Service Connect en lugar de redes de VPC.
- En Cloud Composer 1, aplica el enfoque recomendado para Cloud Composer en redes a gran escala.
Políticas de organización incompatibles
Las siguientes políticas deben configurarse correctamente para que se puedan crear entornos de Cloud Composer.
Política de organización | Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1 |
---|---|---|---|
compute.disableSerialPortLogging |
Se permite cualquier valor. | Debe estar inhabilitada | Inhabilitado para versiones anteriores a la 1.13.0. En el resto de los casos, puede ser cualquier valor. |
compute.requireOsLogin |
Se permite cualquier valor. | Se permite cualquier valor. | Debe estar inhabilitada |
compute.vmCanIpForward |
Se permite cualquier valor. | Se permite cualquier valor. | Debe permitirse (obligatorio para los clústeres de GKE propiedad de Cloud Composer) cuando no se haya configurado el modo nativo de VPC (con IP de alias). |
compute.vmExternalIpAccess |
Se permite cualquier valor. | Debe permitirse en entornos de IP pública | Debe permitirse en entornos de IP pública |
compute.restrictVpcPeering |
Se puede aplicar | No se puede aplicar | No se puede aplicar |
compute.disablePrivateServiceConnectCreationForConsumers |
Se permite cualquier valor. | No se puede inhabilitar SERVICE_PRODUCERS en entornos de IP privada y pública. No afecta a los entornos actuales, que pueden funcionar cuando esta política está habilitada. | No se puede inhabilitar SERVICE_PRODUCERS en entornos de IP privada. No afecta a los entornos actuales, que pueden funcionar cuando esta política está habilitada. |
compute.restrictPrivateServiceConnectProducer |
Cuando esté activo, añade a la lista de permitidos la organización google.com |
Cuando esté activo, añade a la lista de permitidos la organización google.com |
Se permite cualquier valor. |
Políticas de límites de acceso de principales incompatibles
Las políticas de límite de acceso de principales configuradas en tu organización se pueden configurar de forma que bloqueen algunas de las operaciones de tu entorno o impidan la creación de nuevos entornos.
Si es así, puede que veas la siguiente línea en los mensajes de error:
Operations on resource are denied due to an IAM Principal Access Boundary Policy.
Los componentes de tu entorno se encuentran en un arrendatario y un proyecto de cliente. El proyecto de inquilino lo gestiona Google y no pertenece a la organización en la que se encuentra el entorno. La cuenta de servicio de tu entorno debe tener permisos para realizar operaciones en el proyecto de inquilino.
Solución:
- Añade una expresión de condición a la vinculación de la política para excluir la cuenta de servicio del entorno de la política. Para ver un ejemplo de cómo excluir un principal para que la política no se aplique a él, consulta Vinculaciones de políticas condicionales para políticas de límites de acceso de principales en la documentación de Gestión de Identidades y Accesos.
Restringir los servicios utilizados en una organización o un proyecto
Los administradores de organizaciones o proyectos pueden restringir los servicios de Google que se pueden usar en sus proyectos mediante la restricción de la política de organización gcp.restrictServiceUsage
.
Cuando se usa esta política de organización, es importante permitir todos los servicios que requiere Cloud Composer.
Mensajes de error 400: no se ha podido implementar el servidor web de Airflow.
Este error puede deberse a que no se ha podido crear un clúster de GKE en un entorno de IP privada debido a que los intervalos de IP se solapan.
Solución: consulta los registros para ver si hay algún fallo en el clúster de tu entorno y resuelve el problema en función del mensaje de error de GKE.
Cloud Build no puede crear imágenes de entorno
Se aplica a: Cloud Composer 2 y Cloud Composer 1.
Si la cuenta de servicio de Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com
) no tiene el rol Cuenta de servicio de Cloud Build (roles/cloudbuild.builds.builder
) en tu proyecto, es posible que los intentos de crear o actualizar un entorno fallen y se produzcan errores relacionados con los permisos.
Por ejemplo, puede 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 solucionar este problema, asegúrate de que la cuenta de servicio de Cloud Build tenga el rol Cuenta de servicio de Cloud Build.