El tiempo de ejecución de la aplicación es el entorno en el que se ejecutan las aplicaciones.
Aplicaciones de paquetes de compilación | Aplicaciones de imagen de contenedor | |
---|---|---|
Bibliotecas del sistema | Proporcionado por la pila | Proporcionado en el contenedor |
Acceso a la red | Acceso completo a través del sidecar de Envoy | Acceso completo a través del sidecar de Envoy |
Sistema de archivos | Almacenamiento efímero | Almacenamiento efímero |
Entorno de ejecución de lenguaje | Suministrado por la pila o el paquete de compilación | Integrado en el contenedor |
Usuario | Especificado por la pila | Especificado en el contenedor |
Mecanismo de aislamiento | Pod de Kubernetes | Pod de Kubernetes |
DNS | Proporcionado por Kubernetes | Proporcionado por Kubernetes |
Variables de entorno
Kubernetes inserta las variables de entorno en la aplicación en el tiempo de ejecución. Las variables se añaden en el siguiente orden, donde los valores posteriores anulan los anteriores con el mismo nombre:
- Espacio (configurado por los administradores)
- Aplicación (definida por los desarrolladores)
- Sistema (definido por Kf)
Kf proporciona las siguientes variables de entorno del sistema:
Variable | Finalidad |
---|---|
CF_INSTANCE_ADDR |
La IP:PUERTO visible del clúster de la instancia de la aplicación. |
CF_INSTANCE_GUID |
UUID de la instancia de la aplicación. |
INSTANCE_GUID |
Alias de CF_INSTANCE_GUID . |
CF_INSTANCE_INDEX |
Número de índice de la instancia de la aplicación. SIEMPRE será 0. |
INSTANCE_INDEX |
Alias de CF_INSTANCE_INDEX . |
CF_INSTANCE_IP |
La IP visible del clúster de la instancia de App. |
CF_INSTANCE_INTERNAL_IP |
Alias de CF_INSTANCE_IP |
VCAP_APP_HOST |
Alias de CF_INSTANCE_IP |
CF_INSTANCE_PORT |
Puerto visible del clúster de la instancia de la aplicación. En Kf, es lo mismo que PORT . |
DATABASE_URL |
El primer URI encontrado en una credencial VCAP_SERVICES . |
LANG |
Requerido por Buildpacks para asegurar un orden de carga de secuencias de comandos coherente. |
MEMORY_LIMIT |
La cantidad máxima de memoria en MB que puede consumir la aplicación. |
PORT |
Puerto en el que la aplicación debe escuchar las solicitudes. |
VCAP_APP_PORT |
Alias de PORT . |
VCAP_APPLICATION |
Una estructura JSON que contiene metadatos de la aplicación. |
VCAP_SERVICES |
Una estructura JSON que especifica los servicios enlazados. |
Las credenciales de servicio de los servicios enlazados se insertan en las aplicaciones a través de la variable de entorno VCAP_SERVICES
. La variable es un objeto JSON válido con la siguiente estructura.
VCAPServices
Un objeto JSON en el que las claves son etiquetas de servicio y los valores son una matriz de VCAPService
. La matriz representa todos los servicios enlazados con esa etiqueta.
Los servicios proporcionados por el usuario
se colocan bajo la etiqueta user-provided
.
Ejemplo
{
"mysql": [...],
"postgresql": [...],
"user-provided": [...]
}
VCAPService
Este tipo representa una sola instancia de servicio enlazada.
Ejemplo
{
"binding_name": string,
"instance_name": string,
"name": string,
"label": string,
"tags": string[],
"plan": string,
"credentials": object
}
Campos
Campo | Tipo | Descripción |
---|---|---|
binding_name |
string |
Nombre asignado a la vinculación de servicio por el usuario. |
instance_name |
string |
Nombre que el usuario ha asignado a la instancia de servicio. |
name |
string |
El binding_name si existe; de lo contrario, el instance_name . |
label |
string |
Nombre de la oferta de servicio. |
tags |
string[] |
Una matriz de cadenas que una aplicación puede usar para identificar una instancia de servicio. |
plan |
string[] |
El plan de servicio seleccionado al crear la instancia de servicio. |
credentials |
object |
Las credenciales específicas del servicio necesarias para acceder a la instancia del servicio. |
VCAP_APPLICATION
La variable de entorno VCAP_APPLICATION
es un objeto JSON que contiene metadatos sobre la aplicación.
Ejemplo
{
"application_id": "12345",
"application_name": "my-app",
"application_uris": ["my-app.example.com"],
"limits": {
"disk": 1024,
"mem": 256
},
"name": "my-app",
"process_id": "12345",
"process_type": "web",
"space_name": "my-ns",
"uris": ["my-app.example.com"]
}
Campos
Campo | Tipo | Descripción |
---|---|---|
application_id |
string |
GUID que identifica la aplicación. |
application_name |
string |
Nombre asignado a la aplicación cuando se envió. |
application_uris |
string[] |
Los URIs asignados a la aplicación. |
limits |
object |
Los límites de espacio en disco y de memoria permitidos para la aplicación. Los límites de memoria y espacio en disco se proporcionan cuando se implementa la aplicación, ya sea en la línea de comandos o en el manifiesto de la aplicación. Los límites de disco y memoria se representan como números enteros, con una unidad supuesta de MB. |
name |
string |
Es idéntico a application_name . |
process_id |
string |
El UID que identifica el proceso. Solo está presente en los contenedores de aplicaciones en ejecución. |
process_type |
string |
El tipo de proceso. Solo está presente en los contenedores de aplicaciones en ejecución. |
space_name |
string |
Nombre legible del espacio en el que se ha desplegado la aplicación. |
uris |
string[] |
Es idéntico a application_uris . |
Faltan campos
Actualmente, algunos campos de VCAP_APPLICATION
que están en Cloud Foundry no se admiten en Kf.
Además de los campos específicos de CF y los obsoletos (cf_api
, host
y users
), estos son los campos que no se admiten en Kf:
application_version
(idéntico aversion
)organization_id
organization_name
space_id
start
(idéntico astarted_at
)started_at_timestamp
(idéntico astate_timestamp
)