Preguntas frecuentes para Code Engine
Respuestas a preguntas frecuentes sobre el servicio IBM Cloud® Code Engine.
¿Qué es IBM Cloud Code Engine?
Code Engine está desarrollado por IBM y está construido con muchos componentes de código abierto. Su objetivo es ampliar las prestaciones de Kubernetes para ayudarle a crear apps modernas, centradas en el código fuente y sin servidor que se ejecuten en el clúster de Kubernetes. La plataforma está diseñada para satisfacer las necesidades de los desarrolladores que deben decidir qué tipo de app se debe ejecutar en la nube: apps de 12 factores, contenedores o funciones. Para obtener más información, consulte Acerca de Code Engine.
Con Code Engine, puede desplegar aplicaciones, ejecutar trabajos e incluso crear código fuente desde un único panel de control.
¿Qué es un proyecto?
Un proyecto es una agrupación de entidades de Code Engine, como aplicaciones, trabajos y compilaciones. Un proyecto se basa en un espacio de nombres de Kubernetes. El nombre del proyecto debe ser exclusivo en el grupo de recursos, la cuenta de usuario y la región de IBM Cloud®. Los proyectos se utilizan para gestionar recursos y proporcionar acceso a sus entidades.
Un proyecto proporciona los elementos siguientes.
- Proporciona un espacio de nombres exclusivo para nombres de entidad.
- Gestiona el acceso a los recursos del proyecto (acceso de entrada).
- Gestiona el acceso a los servicios de respaldo, registros y repositorios (acceso de salida).
- Tiene un certificado generado automáticamente para el Servicio de capa de transporte (TLS).
Para obtener más información sobre proyectos, consulte el tema sobre Gestión de proyectos.
¿Dónde puedo encontrar ejemplos de código?
Puede encontrar ejemplos de código para ayudarle a explorar las funciones de Code Engine. Visite nuestro repositorio de ejemplos de código de Code Engine en GitHub.
Necesito más memoria. ¿Puedo aumentar los límites?
Sí, puede aumentar los limits de Code Engine poniéndose en contacto con el servicio de soporte de IBM.
¿Necesito una cuenta de Docker Hub para utilizar Code Engine?
Code Engine no requiere una cuenta de Docker Hub. Aunque Code Engine ejecuta contenedores, no es necesario comprender la tecnología de contenedor para desplegar cargas de trabajo en Code Engine. Puede empezar con el código fuente y Code Engine crea la imagen de contenedor y la almacena en un espacio de nombres IBM Cloud Container Registry que es propiedad de su cuenta. Aunque se utiliza IBM Cloud Container Registry como registro de contenedor predeterminado, Code Engine puede enviar y extraer imágenes de cualquier otro registro público y privado al que se pueda acceder desde IBM Cloud.
¿Qué diferencia hay entre una compilación de Docker en mi sistema y una compilación en Code Engine?
El resultado de una compilación de Docker que se ejecuta en el sistema local es la misma imagen de contenedor que obtiene si ejecuta una compilación con el mismo Dockerfile en Code Engine. Sin embargo, la compilación de Code Engine no se está ejecutando en el sistema local, sino en el sistema Code Engine. Esta compilación en Code Engine le ofrece varias ventajas.
- No es necesario instalar software, como Docker Desktop, localmente.
- Puede utilizar los recursos que proporciona Code Engine. Por ejemplo, puede aprovechar la velocidad de IBM Cloud para enviar y extraer imágenes de registro de contenedores.
- Puede crear la imagen de contenedor utilizando la estrategia de compilación de paquetes de compilación en lugar de Dockerfile, que detecta los orígenes de diversos idiomas y crea automáticamente un contenedor.
- Si tiene una imagen que se ha creado con un procesador no basado en Intel, Code Engine puede volver a crearla.
¿Por qué las imágenes de contenedores creadas con Buildpacks en Code Engine muestran muchas vulnerabilidades?
Las imágenes creadas con la estrategia Buildpacks utilizan una imagen base Ubuntu. Aunque esta imagen de base se mantiene activamente, algunos paquetes de Ubuntu sólo reciben correcciones de seguridad bajo el modelo de suscripción Ubuntu Pro.
Como resultado, su imagen contiene paquetes para los que Canonical publica avisos de vulnerabilidad, pero sólo proporciona parches a los suscriptores de Ubuntu Pro. Dado que Code Engine utiliza la versión disponible públicamente, estas actualizaciones
no pueden aplicarse automáticamente. En los informes sobre vulnerabilidades, puede identificarlas comprobando la versión a la que habría que actualizar un paquete. Si este número de versión contiene esm, se trata de una corrección
exclusiva de Ubuntu Pro.
Tenga en cuenta que la imagen base contiene varios paquetes que son necesarios para algunos tiempos de ejecución. Estos paquetes se instalan porque Buildpacks no puede determinar de forma fiable durante la compilación qué bibliotecas del sistema puede necesitar su aplicación en tiempo de ejecución. Aunque algunos paquetes pueden no ser necesarios para su aplicación específica, se incluyen para garantizar que una amplia variedad de cargas de trabajo se ejecuten correctamente.
Si desea un control total sobre la imagen base, incluyendo qué paquetes de Ubuntu están presentes y cuándo se actualizan, considere cambiar de la estrategia de compilación Buildpacks a proporcionar su propio Dockerfile. Con una compilación basada en Dockerfile, puede elegir una imagen base mínima, actualizar los paquetes exactamente como prefiera y reducir el número de componentes que aparecen en los análisis de vulnerabilidades.
¿Por qué las imágenes creadas con procesadores no Intel no funcionan con Code Engine?
Si tiene una imagen que existe en un registro de contenedor y la imagen se ha creado con un procesador no basado en Intel, Code Engine no puede ejecutar la imagen de contenedor. Code Engine utiliza el proceso basado en Intel. Puede crear su propia imagen si utiliza el proceso de Intel (procesadorx86 ). También puede elegir que Code Engine maneje el proceso de compilación. Para obtener más información, consulte Planificación de una compilación.
¿Las apps de Code Engine admiten WebSockets?
¡Sí! Puede encontrar una aplicación de ejemplo que utiliza WebSockets visitando nuestro repositorio de muestras Code Engine en GitHub.
El tiempo máximo de cualquier conexión a una aplicación es de 10 minutos, aunque la conexión no esté desocupada. En Code Engine, se puede configurar este tiempo de conexión con el valor timeout. Con la CLI, use la opción --timeout con el comando app create o el comando app update.
Desde la consola, puedes establecer el valor Timeout para tu aplicación desde la pestaña Recursos y escalado. Si la app usa WebSockets, el cliente tendrá que reconectarse con la app una vez cerrada la conexión.
Por lo tanto, si la app necesita una conexión persistente, cree una nueva conexión antes de que se alcance el valor de timeout.
Hacer Code Engine soporte de aplicaciones gRPC?
¡Sí! Puede encontrar una aplicación de ejemplo que utiliza gRPC visitando nuestro repositorio de muestras Code Engine en GitHub.
Puesto que gRPC depende de HTTP/2, debe establecer el nombre de puerto en h2c y el valor de puerto en 8080 y, a continuación, la aplicación Code Engine puede dar soporte al tráfico HTTP/2. Utilice la CLI Code Engine
para configurar la opción --port h2c:8080 con el mandato app create o el mandato app update para configurar la aplicación para utilizar gRPC. Consulte Implementación de aplicaciones con gRPC.
¿ Code Engine proporciona una forma de limitar el acceso a una entidad determinada dentro de un proyecto Code Engine ?
No, en Code Engine, los roles que se aplican a cualquier entidad Code Engine sólo se circunscriben al proyecto seleccionado como contexto actual. Por lo tanto, no puede controlar los permisos sobre recursos individuales dentro de un proyecto Code Engine.
¿ Code Engine proporciona una especificación OpenAPI para la función desplegada?
No, Code Engine no genera ni proporciona una especificación OpenAPI para las funciones que despliega. Hay paquetes y herramientas disponibles para muchos lenguajes de programación para generar una especificación OpenAPI a partir de código.
¿Cómo puedo revisar las condiciones del servicio Code Engine?
Para las condiciones más actualizadas del acuerdo de nivel de servicio, consulte las condiciones de servicio.
¿Cómo puedo hacer comentarios?
Sus comentarios sobre Code Engine son importantes para nosotros y nos ayudan a mejorar. Puede proporcionar comentarios de varias formas:
- Hacer clic Problema de documento abierto al final de una página de documentación para abrir un problema y proporcionar sus comentarios.
- Puede compartir comentarios a través de Slack. Puedes unirte al debate en el canal #code-engine.