L'environnement d'exécution de l'application correspond à l'environnement dans lequel les applications sont exécutées.
Applications du pack de création | Applications d'images de conteneurs | |
---|---|---|
Bibliothèques système | Fournies par la pile | Fournies dans le conteneur |
Accès au réseau | Accès complet via le side-car Envoy | Accès complet via le side-car Envoy |
Système de fichiers | Stockage éphémère | Stockage éphémère |
Environnement d'exécution du langage | Fourni par la pile ou le pack de création | Intégré au conteneur |
Utilisateur | Spécifié par la pile | Spécifié dans le conteneur |
Mécanisme d'isolation | Pod Kubernetes | Pod Kubernetes |
DNS | Fourni par Kubernetes | Fourni par Kubernetes |
Variables d'environnement
Les variables d'environnement sont injectées dans l'application au moment de l'exécution par Kubernetes. Les variables sont ajoutées dans l'ordre suivant, dans lequel les valeurs plus récentes remplacent les anciennes valeurs portant le même nom :
- Espace (défini par les administrateurs)
- Application (définie par les développeurs)
- Système (défini par Kf)
Kf fournit les variables d'environnement système suivantes :
Variable | Objectif |
---|---|
CF_INSTANCE_ADDR |
IP:PORT de l'instance d'application visible par le cluster |
CF_INSTANCE_GUID |
UUID de l'instance d'application |
INSTANCE_GUID |
Alias de CF_INSTANCE_GUID |
CF_INSTANCE_INDEX |
Numéro d'index de l'instance d'application, TOUJOURS égal à 0 |
INSTANCE_INDEX |
Alias de CF_INSTANCE_INDEX |
CF_INSTANCE_IP |
Adresse IP de l'instance d'application visible par le cluster |
CF_INSTANCE_INTERNAL_IP |
Alias de CF_INSTANCE_IP |
VCAP_APP_HOST |
Alias de CF_INSTANCE_IP |
CF_INSTANCE_PORT |
Port de l'instance d'application visible par le cluster. Dans Kf, il est identique à PORT . |
DATABASE_URL |
Premier URI trouvé dans un identifiant VCAP_SERVICES |
LANG |
Requis par Buildpacks pour assurer l'ordre cohérent du chargement des scripts |
MEMORY_LIMIT |
Quantité maximale de mémoire consommée par l'application, exprimée en Mo |
PORT |
Port sur lequel l'application doit écouter les requêtes |
VCAP_APP_PORT |
Alias de PORT |
VCAP_APPLICATION |
Structure JSON contenant les métadonnées de l'application |
VCAP_SERVICES |
Structure JSON spécifiant les services liés |
Les identifiants des services liés sont injectés dans les applications via la variable d'environnement VCAP_SERVICES
. La variable est un objet JSON valide présentant la structure suivante.
VCAPServices
Objet JSON dans lequel les clés sont des libellés de service et les valeurs correspondent à un tableau de VCAPService
. Le tableau représente chaque service lié portant ce libellé.
Les services fournis par l'utilisateur sont répertoriés sous le libellé user-provided
.
Exemple
{
"mysql": [...],
"postgresql": [...],
"user-provided": [...]
}
VCAPService
Ce type représente une seule instance de service lié.
Exemple
{
"binding_name": string,
"instance_name": string,
"name": string,
"label": string,
"tags": string[],
"plan": string,
"credentials": object
}
Champs
Champ | Type | Description |
---|---|---|
binding_name |
string |
Nom attribué par l'utilisateur à la liaison de service |
instance_name |
string |
Nom attribué par l'utilisateur à l'instance de service |
name |
string |
Nom de la liaison (binding_name ), s'il existe. Sinon, ce nom correspond à celui de l'instance (instance_name ). |
label |
string |
Nom de l'offre de service |
tags |
string[] |
Tableau de chaînes pouvant être utilisé par une application pour identifier une instance de service |
plan |
string[] |
Plan de service sélectionné lors de la création de l'instance de service |
credentials |
object |
Identifiants spécifiques au service requis pour accéder à l'instance de service |
VCAP_APPLICATION
La variable d'environnement VCAP_APPLICATION
est un objet JSON contenant des métadonnées sur l'application.
Exemple
{
"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"]
}
Champs
Champ | Type | Description |
---|---|---|
application_id |
string |
GUID identifiant l'application |
application_name |
string |
Nom attribué à l'application lors de son transfert |
application_uris |
string[] |
URI attribués à l'application |
limits |
object |
Limites de l'espace disque et de la mémoire autorisées pour l'application. Les limites de mémoire et d'espace disque sont définies dans la ligne de commande ou dans le fichier manifeste de l'application lors de son déploiement. Les limites de disque et de mémoire sont représentées sous forme d'entiers, avec une unité supposée de Mo. |
name |
string |
Identique à application_name |
process_id |
string |
UID identifiant le processus. Présent uniquement dans les conteneurs de l'application en cours d'exécution. |
process_type |
string |
Type de processus. Présent uniquement dans les conteneurs de l'application en cours d'exécution. |
space_name |
string |
Nom lisible de l'espace dans lequel l'application est déployée. |
uris |
string[] |
Identique à application_uris |
Champs non renseignés
Certains champs de VCAP_APPLICATION
dans Cloud Foundry ne sont actuellement pas compatibles avec Kf.
Hormis les champs spécifiques à Cloud Foundry et obsolètes (cf_api
, host
, users
), les champs non acceptés dans Kf sont les suivants :
application_version
(identique àversion
)organization_id
organization_name
space_id
start
(identique àstarted_at
)started_at_timestamp
(identique àstate_timestamp
)