¿Por qué falla la creación de mi app?

No se puede crear una app. Cuando se ejecuta el mandato ibmcloud ce app create en la CLI o cuando se despliega una app en la consola, la aplicación no se completa correctamente y aparece un mensaje de error failed o revision failed.

Si no puede crear una app, determine si se cumple uno de los casos siguientes.

  1. El nombre de la app no es exclusivo en el proyecto. Se recibe un mensaje de error que contiene Application 'myapp' already exists within project 'myproj', please select a unique name.

  2. El nombre de la app no es válido. Se recibe un mensaje de error que contiene An application name must consist of lowercase alphanumeric characters, '-' and must start with an alphabetic character and end with an alphanumeric character.

  3. Si la imagen a la que hace referencia no existe, no se completa la creación de la app y se produce un error. Se recibe un mensaje de error que contiene Unable to pull the image.

  4. Si no tiene permisos para acceder a la imagen de referencia, no se completa la creación de la app y se produce un error. Se recibe un mensaje de error que contiene Unable to pull the image.

  5. El valor de memoria o de CPU no es válido. Recibirá un mensaje de error que contiene memory parameter must be between .25 G and 32 G o cpu parameter must be between .0125 and 8.0. Para obtener información adicional sobre los límites de Code Engine para las aplicaciones, consulte Límites de aplicación y valores predeterminados de Code Engine.

  6. Se ha alcanzado la cuota de recursos para aplicaciones o revisiones de aplicaciones y no se ha creado la aplicación (o revisión de aplicación). Code Engine tiene cuotas para aplicaciones y revisiones de las aplicaciones dentro de un proyecto. Para obtener información adicional sobre los límites de Code Engine, consulte Cuotas de proyecto.

  7. Si la imagen de la app se encuentra en Docker Hub y recibe un mensaje de error similar que indica que ha alcanzado el límite de velocidad de extracción de Docker.

    429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit ”
    

Pruebe una de estas soluciones.

  1. Para determinar si el nombre de la app es exclusivo en el proyecto, utilice el mandato ibmcloud ce app list para ver una lista de todas las apps definidas y comprobar si existe una app con el mismo nombre. De ser así, utilice el mandato ibmcloud ce app delete --name APP_NAME para suprimir la app antigua. El nombre de la app debe ser exclusivo en el proyecto.

  2. Para confirmar que el nombre de la app es válido, compruebe que el nombre de la app consta de caracteres alfanuméricos en minúsculas, '-', y que el nombre empieza y acaba con un carácter alfabético.

  3. Para confirmar que la imagen de la app existe, revise el mensaje de error para obtener información sobre la anomalía.

    a. Para desplegar aplicaciones en Code Engine, primero debe crear una imagen de contenedor que tenga todos los artefactos de tiempo de ejecución que su aplicación necesita ejecutar, como las bibliotecas de tiempo de ejecución. Puede utilizar diversos métodos para crear la imagen, incluida la creación de la app desde el código fuente mediante la característica para crear imágenes de contenedor disponible en Code Engine. La imagen se puede descargar desde un registro de imágenes público o privado. Para obtener más información sobre el acceso a registros privados, consulte Adición de acceso a un registro de contenedores privado.

    b. Si utiliza el mandato app create en la CLI de Code Engine, especifique el nombre de la imagen que se utiliza para la aplicación mediante el formato REGISTRY/NAMESPACE/REPOSITORY:TAG donde REGISTRY y TAG son opcionales. Si no se especifica REGISTRY, el valor predeterminado es docker.io. Si no se especifica TAG, el valor predeterminado es latest. Para obtener más información sobre el formato que se debe utilizar para especificar el repositorio de la imagen, consulte el mandato ibmcloud ce app create.

  4. Para confirmar que puede acceder a la imagen de referencia, verifique la ubicación de la imagen y confirme que tiene permisos para acceder a la imagen.

    Si la imagen se encuentra en un registro de imágenes de contenedor, como Docker Hub o IBM Cloud Container Registry, compruebe que ha añadido acceso de registro a Code Engine y que está utilizando el secreto de registro correcto. Para obtener más información sobre cómo trabajar con imágenes en un registro de imágenes de contenedor, consulte Adición de acceso a un registro de contenedores privado.

  5. Si especifica la opción --memory o --cpu con el mandato app create, confirme que está utilizando valores válidos. En el mandato siguiente, los valores especificados para --memory y --cpu no son válidos; por ejemplo,

    ibmcloud ce app create --name myapp  --image icr.io/codeengine/codeengine --memory 50Gi --cpu 20
    

    Salida de ejemplo

    Creating application 'myapp'...
    FAILED
    memory parameter must be between 128Mi and 32Gi
    cpu parameter must be between .01 and 8.0
    

    Para corregir los errores, defina la opción --memory entre 128 Mi y 32 Gi, y defina la opción --cpu entre 0,01 y 8,0 vCPU.

  6. Si recibe un mensaje de error en el que se indica que se ha excedido la cuota de recursos, suprima aplicaciones o revisiones de aplicación para poder desplegar aplicaciones o revisiones de aplicación adicionales.

    • Para gestionar sus aplicaciones, utilice el mandato ibmcloud ce app list para visualizar una lista de todas las aplicaciones del proyecto actual. Utilice el comando ibmcloud ce app delete para eliminar aplicaciones según sea necesario.

    • Para gestionar sus revisiones de aplicaciones, utilice el mandato ibmcloud ce revision list para visualizar todas las revisiones de aplicaciones.

  7. Para solucionar el problema de límite de velocidad de concentrador Docker, puede realizar las acciones siguientes.

    • Autentíquese con Docker Hub para aumentar el límite de velocidad. Tenga en cuenta los límites de velocidad deDocker.

    • Extraiga la imagen de Docker Hub y publique la imagen en un registro diferente, como por ejemplo IBM Cloud® Container Registry. A continuación, extraiga la imagen de la nueva ubicación.

Si estas soluciones no resuelven el problema, para profundizar en la depuración, intente recuperar los registros o la información de sucesos del sistema de la aplicación. Puede obtener información adicional consultando ¿Cómo se obtienen los registros de una aplicación? y ¿Cómo se obtiene la información de sucesos del sistema de una aplicación?.

Para obtener información adicional sobre cómo trabajar con aplicaciones, consulte Despliegue de aplicaciones.