Exploración de contenedores en Azure Container Apps
Azure Container Apps administra los detalles de Kubernetes y la orquestación de contenedores. Los contenedores de Azure Container Apps pueden usar cualquier entorno de ejecución, lenguaje de programación o pila de desarrollo de su preferencia.
Azure Container Apps admite cualquier imagen de contenedor x86-64 (linux/amd64
) basada en Linux. No se requiere una imagen de contenedor base, y si un contenedor se bloquea, se reinicia automáticamente.
Configuración
El código siguiente es un ejemplo de la matriz de containers
en la sección properties.template
de una plantilla de recursos de aplicación de contenedor. En el extracto se muestran algunas de las opciones de configuración disponibles al configurar un contenedor al usar plantillas de Azure Resource Manager (ARM). Los cambios en la sección de configuración de ARM de la plantilla provocan una nueva revisión de la aplicación de contenedor.
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
}
]
"probes":[
{
"type":"liveness",
"httpGet":{
"path":"/health",
"port":8080,
"httpHeaders":[
{
"name":"Custom-Header",
"value":"liveness probe"
}]
},
"initialDelaySeconds":7,
"periodSeconds":3
// file is truncated for brevity
Varios contenedores
Puede definir varios contenedores en una sola aplicación de contenedores para implementar el patrón sidecar de . Los contenedores de una aplicación de contenedor comparten recursos de red y disco duro y experimentan el mismo ciclo de vida de la aplicación.
Entre los ejemplos de contenedores sidecar se incluyen:
- Un agente que lee los registros del contenedor de aplicaciones principal en un volumen compartido y los reenvía a un servicio de registro.
- Proceso en segundo plano que actualiza una caché usada por el contenedor de aplicaciones principal en un volumen compartido.
Nota
La ejecución de varios contenedores en una sola aplicación de contenedor es un caso de uso avanzado. En la mayoría de las situaciones en las que desea ejecutar varios contenedores, como al implementar una arquitectura de microservicios, implemente cada servicio como una aplicación contenedora independiente.
Para ejecutar varios contenedores en una aplicación contenedora, agregue más de un contenedor en la matriz de contenedores de la plantilla de aplicación de contenedor.
Registros de contenedores
Puede implementar imágenes hospedadas en registros privados proporcionando credenciales en la configuración de Container Apps.
Para usar un registro de contenedor, defina los campos necesarios de la matriz de registros en la sección properties.configuration de la plantilla de recursos de la aplicación contenedora. El campo passwordSecretRef identifica el nombre del secreto en el nombre de la matriz de secretos donde definió la contraseña.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
Con la información del Registro agregada, las credenciales guardadas se pueden usar para extraer una imagen de contenedor del registro privado cuando se implementa la aplicación.
Limitaciones
Azure Container Apps tiene las siguientes limitaciones:
- contenedores con privilegios: Azure Container Apps no puede ejecutar contenedores con privilegios. Si el programa intenta ejecutar un proceso que requiere acceso raíz, la aplicación dentro del contenedor experimenta un error en tiempo de ejecución.
-
sistema operativo: se requieren imágenes de contenedor basadas en Linux (
linux/amd64
).