Despliegue de cargas de trabajo de aplicaciones desde imágenes en IBM Cloud Container Registry
Despliegue la app con Code Engine que utiliza una imagen en IBM Cloud® Container Registry. Puede crear una app desde la consola o con la CLI.
Antes de empezar
-
Debe tener una imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Iniciación a Container Registry. O bien, puede crear una imagen a partir del código fuente del repositorio o del código fuente local.
-
Verifique que puede acceder al registro. Consulte Configuración de autorizaciones para registros de contenedores.
¿Te interesa configurar tu proyecto de tal forma que todos los usuarios del mismo puedan almacenar y acceder a imágenes en Container Registry sin tener que crear manualmente secretos de registro? Con permisos suficientes, puede configurar este acceso de registro predeterminado para cada ubicación (región). Si no tiene permisos suficientes para realizar estas acciones, puede utilizar esta página para ayudarle a comprender los permisos necesarios. Consulte Configuración de valores para todo el proyecto.
Despliegue de una app que haga referencia a una imagen de Container Registry con la consola
Despliegue una aplicación que utilice una imagen en Container Registry utilizando la consola de Code Engine.
Code Engine puede extraer automáticamente imágenes de un espacio de nombres de Container Registry en una cuenta. Para extraer imágenes de una cuenta de Container Registry diferente o de una cuenta privada de Docker Hub, consulte Despliegue de cargas de trabajo de aplicación a partir de imágenes en un registro privado.
- Abra la consola de Code Engine.
- Selecciona « Empezar a crear ».
- Seleccione un proyecto de la lista de proyectos disponibles. También puede crear uno nuevo. Debe tener un proyecto seleccionado para desplegar una app.
- Seleccione Aplicación.
- Especifique un nombre para la aplicación; por ejemplo,
helloapp. Utilice un nombre para la aplicación que sea exclusivo dentro del proyecto. - Selecciona « Usar una imagen de contenedor existente » y haz clic en « Configurar imagen ».
- Selecciona una ubicación para el registro de contenedores, como
IBM Registry Dallas. - Seleccione
Code Engine managed secretpara el Secreto de registro. Dado que este ejemplo utiliza una imagen del espacio de nombres Container Registry de tu cuenta, Code Engine puede crear y gestionar automáticamente el secreto de registro por ti. - Seleccione un espacio de nombres y un nombre de la imagen existente en el registro a los que la aplicación Code Engine hará referencia. Por ejemplo, seleccione
mynamespacey seleccione la imagenhello_repoen dicho espacio de nombres. - Seleccione un valor para la Etiqueta; por ejemplo,
latest. - Pulse Listo.
- Modifique los valores de tiempo de ejecución o las variables de entorno para la app. Para obtener más información sobre estas opciones, consulte Opciones para la visibilidad de puntos finales de aplicaciones y Opciones para desplegar una aplicación.
- Pulse Crear para crear la aplicación.
- Después de que el estado de la aplicación cambie a Preparado, puede probar la aplicación. Pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación.
Ahora que ha desplegado la aplicación, puede ver información sobre las revisiones de la aplicación y las instancias en ejecución y los detalles de configuración.
Si desea añadir acceso de registro a una instancia de Container Registry que no está en su cuenta, consulte Adición de acceso a un Container Registry.
Despliegue de una app con una imagen de Container Registry con la CLI
Para desplegar una aplicación que utilice una imagen en IBM Cloud® Container Registry con la CLI, utilice el mandato ibmcloud ce app create. Para ver una lista completa de opciones, consulte el mandato ibmcloud ce app create.
Antes de empezar
- Configure su entorno de CLI de Code Engine.
- Cree y trabaje con un proyecto.
- Para poder trabajar con una aplicación de Code Engine que haga referencia a una imagen en Container Registry, primero debe añadir acceso al registro para que Code Engine pueda extraer la imagen cuando se despliegue la aplicación. Para obtener información sobre los permisos necesarios para acceder a los registros de imágenes, consulte Configuración de autorizaciones para registros de imágenes.
-
Para añadir acceso a Container Registry, cree una clave de API de IAM. Para crear una clave de API de IBM Cloud IAM con la CLI, ejecute el mandato
iam api-key-create. Por ejemplo, para crear una clave API llamada «cliapikey» con la descripción «My CLI API key» y guardarla en un archivo llamado «key_file», ejecuta el siguiente comando :ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_fileSi elige no guardar la clave en un archivo, debe registrar la clave de API que se visualiza durante la creación. No la podrá recuperarla más adelante.
-
Después de crear la clave de API, añada de acceso de registro a Code Engine. Para añadir acceso a Container Registry con la CLI, utilice el mandato
ibmcloud ce secret create --format registrypara crear un secreto de registro. Por ejemplo, el siguiente comando crea una entrada en el Registro para una instancia de Container Registry denominadamyregistry. Fíjese que aunque se hayan especificado las opciones--servery--usernameen el mandato de ejemplo, el valor predeterminado de la opción--serveresus.icr.ioy la opción--usernametoma como valor predeterminadoiamapikeycuando el servidor esus.icr.io.ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEYSalida de ejemplo
Creating registry secret 'myregistry'... OK -
Cree la app y haga referencia a la imagen
hello_repoen Container Registry. Por ejemplo, utilice el mandatoibmcloud ce app createpara crear la appmyhelloapppara hacer referencia aus.icr.io/mynamespace/hello_repoutilizando la información de acceso demyregistry.ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistryEl formato del nombre de la imagen correspondiente a esta aplicación es
REGISTRY/NAMESPACE/REPOSITORY:TAG, dondeREGISTRYyTAGson opcionales. Si no se especificaREGISTRY, el valor predeterminado esdocker.io. Si no se especificaTAG, el valor predeterminado eslatest. -
Después de que se despliegue la app, puede acceder a la misma. Para obtener el URL de su app, ejecute
ibmcloud ce app get --name myhelloapp --output url. Cuando hace curl en la aplicaciónmyhelloapp, se devuelveHello World.curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
Próximos pasos
-
Después de desplegar la aplicación, acceda a la aplicación a través de un URL.
-
Puede crear una correlación de dominio personalizado y asignarla a la app. Para obtener más información sobre el despliegue de apps en varias regiones con un nombre de dominio personalizado, consulte Configuración de una aplicación de alta disponibilidad.
-
Ahora que tu aplicación ya está implementada, plantéate hacer que tus aplicaciones funcionen basadas en eventos. Mediante el uso de suscripciones de sucesos, puede desencadenar las apps mediante planificaciones periódicas o establecer la app para que reaccione ante sucesos como, por ejemplo, cargas de archivos o Kafka.
Después de desplegar la aplicación, puede actualizar la aplicación desplegada y su código referenciado utilizando varias formas, independientemente de cómo haya creado o actualizado previamente la aplicación:
-
Si dispones de una imagen de contenedor que cumple con el estándar de la Open Container Initiative(OCI), solo tendrás que proporcionar una referencia a dicha imagen, que apunte a la ubicación de tu registro de contenedores, al implementar tu aplicación. Puede desplegar la app con una imagen en un registro público o registro privado.
Si ha creado la app utilizando el mandato
app createy ha especificado la opción--build-sourcepara crear la imagen de contenedor desde el origen local o de repositorio, y desea cambiar la app para que apunte a una imagen de contenedor diferente, primero debe eliminar la asociación de la compilación de la app. Por ejemplo, ejecuteibmcloud ce application update -n APP_NAME --build-clear. Después de eliminar la asociación de la compilación de la app, puede actualizar la app para que haga referencia a una imagen diferente. -
Si está empezando con un código fuente que reside en un repositorio de Git, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y desplegar la aplicación con una única operación. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Despliegue de la aplicación a partir del código fuente del repositorio. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de desplegar la aplicación.
-
Si está empezando con un código fuente que reside en una estación de trabajo local, puede dejar que Code Engine se encargue de compilar la imagen desde el código fuente y desplegar la aplicación con un único mandato de CLI. En este caso de ejemplo, Code Engine carga la imagen en IBM Cloud® Container Registry. Para obtener más información, consulte Despliegue de la aplicación a partir del código fuente local con la CLI. Si desea tener más control sobre la compilación de la imagen, puede elegir compilar la imagen con Code Engine antes de desplegar la aplicación.
Por ejemplo, puede dejar que Code Engine maneje la compilación del código fuente local mientras avanza en el desarrollo del código fuente para la aplicación. Una vez que la imagen ha madurado, puede actualizar la aplicación desplegada para que haga referencia a la imagen específica que desee. Puede repetir este proceso según sea necesario.
Cuando despliega la aplicación actualizada, se descarga y se despliega la última versión de la imagen de contenedor referenciada, a menos que se especifique una etiqueta para la imagen. Si se especifica una etiqueta para la imagen, se utiliza la imagen etiquetada para el despliegue.
¿Desea ver más ejemplos de código? Echa un vistazo a Ejemplos para el repositorio « IBM Cloud Code Engine GitHub ».