Il runtime dell'app è l'ambiente in cui vengono eseguite le app.
App buildpack | Container Image Apps | |
---|---|---|
Librerie di sistema | Fornito dallo stack | Fornito nel contenitore |
Accesso alla rete | Accesso completo tramite il sidecar Envoy | Accesso completo tramite il sidecar Envoy |
File system | Spazio di archiviazione temporanea | Spazio di archiviazione temporanea |
Runtime della lingua | Fornito dallo stack o dal buildpack | Integrato nel contenitore |
Utente | Specificato dallo stack | Specificato nel contenitore |
Meccanismo di isolamento | Pod Kubernetes | Pod Kubernetes |
DNS | Fornito da Kubernetes | Fornito da Kubernetes |
Variabili di ambiente
Le variabili di ambiente vengono iniettate nell'app in fase di esecuzione da Kubernetes. Le variabili vengono aggiunte in base all'ordine seguente, in cui i valori successivi sostituiscono quelli precedenti con lo stesso nome:
- Spazio (impostato dagli amministratori)
- App (impostata dagli sviluppatori)
- Sistema (impostato da Kf)
Kf fornisce le seguenti variabili di ambiente di sistema:
Variabile | Finalità |
---|---|
CF_INSTANCE_ADDR |
L'indirizzo IP:PORT visibile al cluster dell'istanza dell'app. |
CF_INSTANCE_GUID |
L'UUID dell'istanza dell'app. |
INSTANCE_GUID |
Alias di CF_INSTANCE_GUID . |
CF_INSTANCE_INDEX |
Il numero di indice dell'istanza dell'app, che sarà SEMPRE 0. |
INSTANCE_INDEX |
Alias di CF_INSTANCE_INDEX . |
CF_INSTANCE_IP |
L'IP visibile al cluster dell'istanza dell'app. |
CF_INSTANCE_INTERNAL_IP |
Alias di CF_INSTANCE_IP |
VCAP_APP_HOST |
Alias di CF_INSTANCE_IP |
CF_INSTANCE_PORT |
La porta visibile al cluster dell'istanza dell'app. In Kf è lo stesso di PORT . |
DATABASE_URL |
Il primo URI trovato in una credenziale VCAP_SERVICES . |
LANG |
Obbligatorio per Buildpack per garantire un ordine di caricamento degli script coerente. |
MEMORY_LIMIT |
La quantità massima di memoria in MB che l'app può consumare. |
PORT |
La porta su cui l'app deve rimanere in ascolto per le richieste. |
VCAP_APP_PORT |
Alias di PORT . |
VCAP_APPLICATION |
Una struttura JSON contenente i metadati dell'app. |
VCAP_SERVICES |
Una struttura JSON che specifica i servizi associati. |
Le credenziali dei servizi dei servizi associati vengono iniettate nelle app tramite la variabile di ambiente VCAP_SERVICES
. La variabile è un oggetto JSON valido con la seguente struttura.
VCAPServices
Un oggetto JSON in cui le chiavi sono etichette di servizio e i valori sono un array di
VCAPService
. L'array rappresenta ogni servizio associato con quell'etichetta.
I servizi forniti dall'utente
vengono inseriti sotto l'etichetta user-provided
.
Esempio
{
"mysql": [...],
"postgresql": [...],
"user-provided": [...]
}
VCAPService
Questo tipo rappresenta una singola istanza di servizio associata.
Esempio
{
"binding_name": string,
"instance_name": string,
"name": string,
"label": string,
"tags": string[],
"plan": string,
"credentials": object
}
Campi
Campo | Tipo | Descrizione |
---|---|---|
binding_name |
string |
Il nome assegnato all'associazione del servizio dall'utente. |
instance_name |
string |
Il nome assegnato all'istanza di servizio dall'utente. |
name |
string |
binding_name , se esistente; altrimenti instance_name . |
label |
string |
Il nome dell'offerta di servizi. |
tags |
string[] |
Un array di stringhe che un'app può utilizzare per identificare un'istanza di servizio. |
plan |
string[] |
Il piano di servizio selezionato al momento della creazione dell'istanza di servizio. |
credentials |
object |
Le credenziali specifiche del servizio necessarie per accedere all'istanza di servizio. |
VCAP_APPLICATION
La variabile di ambiente VCAP_APPLICATION
è un oggetto JSON contenente i metadati dell'app.
Esempio
{
"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"]
}
Campi
Campo | Tipo | Descrizione |
---|---|---|
application_id |
string |
Il GUID che identifica l'app. |
application_name |
string |
Il nome assegnato all'app quando è stata inviata. |
application_uris |
string[] |
Gli URI assegnati all'app. |
limits |
object |
I limiti di spazio su disco e memoria consentiti all'app. I limiti di memoria e spazio su disco vengono forniti al momento del deployment dell'app, sulla riga di comando o nel file manifest dell'app. I limiti di disco e memoria sono rappresentati come numeri interi, con un'unità presunta in MB. |
name |
string |
Identico a application_name . |
process_id |
string |
L'UID che identifica il processo. Presente solo nei contenitori delle app in esecuzione. |
process_type |
string |
Il tipo di processo. Presente solo nei contenitori delle app in esecuzione. |
space_name |
string |
Il nome leggibile dello spazio in cui è implementata l'app. |
uris |
string[] |
Identico a application_uris . |
Campi mancanti
Alcuni campi in VCAP_APPLICATION
che si trovano in Cloud Foundry non sono attualmente supportati in Kf.
Oltre ai campi specifici di CF e deprecati (cf_api
, host
, users
), i campi non supportati in Kf sono:
application_version
(identico aversion
)organization_id
organization_name
space_id
start
(identico astarted_at
)started_at_timestamp
(identico astate_timestamp
)