Die Anwendungslaufzeit ist die Umgebung, in der Anwendungen ausgeführt werden.
Buildpack-Anwendungen | Container-Image-Anwendungen | |
---|---|---|
Systembibliotheken | Von Stack bereitgestellt | Im Container bereitgestellt |
Netzwerkzugriff | Vollständiger Zugriff über Envoy-Sidecar-Datei | Vollständiger Zugriff über Envoy-Sidecar-Datei |
Dateisystem | Sitzungsspezifischer Speicher | Sitzungsspezifischer Speicher |
Sprachlaufzeit | Bereitgestellt von Stack oder Buildpack | In den Container integriert |
Nutzer | Durch den Stack festgelegt | Für den Container festgelegt |
Isolationsmechanismus | Kubernetes-Pod | Kubernetes-Pod |
DNS | Von Kubernetes bereitgestellt | Von Kubernetes bereitgestellt |
Umgebungsvariablen
Umgebungsvariablen werden von Kubernetes zur Laufzeit in die Anwendung eingefügt. Variablen werden entsprechend der folgenden Reihenfolge hinzugefügt, wenn spätere Werte frühere Variablen mit demselben Namen überschreiben:
- Bereich (von Administratoren festgelegt)
- Anwendung (von Entwicklern festgelegt)
- System (von Kf festgelegt)
Kf stellt die folgenden Systemumgebungsvariablen bereit:
Variable | Zweck |
---|---|
CF_INSTANCE_ADDR |
Der für das Cluster sichtbare IP:PORT der Anwendungsinstanz. |
CF_INSTANCE_GUID |
Die UUID der Anwendungsinstanz. |
INSTANCE_GUID |
Alias von CF_INSTANCE_GUID . |
CF_INSTANCE_INDEX |
Die Indexnummer der Anwendungsinstanz. Diese lautet immer 0. |
INSTANCE_INDEX |
Alias von CF_INSTANCE_INDEX . |
CF_INSTANCE_IP |
Die für das Cluster sichtbare IP der Anwendungsinstanz. |
CF_INSTANCE_INTERNAL_IP |
Alias von CF_INSTANCE_IP |
VCAP_APP_HOST |
Alias von CF_INSTANCE_IP |
CF_INSTANCE_PORT |
Der für das Cluster sichtbare Port der Anwendungsinstanz. In Kf ist dies der gleiche wie PORT . |
DATABASE_URL |
Der erste URI in den VCAP_SERVICES -Anmeldedaten. |
LANG |
Für Buildpacks erforderlich, um eine konsistente Ladereihenfolge für Skripts zu gewährleisten. |
MEMORY_LIMIT |
Die maximale Speichermenge in MB, die die Anwendung verbrauchen kann. |
PORT |
Der Port, den die Anwendung auf Anfragen überwachen soll. |
VCAP_APP_PORT |
Alias von PORT . |
VCAP_APPLICATION |
Eine JSON-Struktur mit Anwendungsmetadaten. |
VCAP_SERVICES |
Eine JSON-Struktur, die gebundene Dienste angibt. |
Dienstanmeldedaten von gebundenen Diensten werden über die Umgebungsvariable VCAP_SERVICES
in Anwendungen eingefügt. Die Variable ist ein gültiges JSON-Objekt mit der folgenden Struktur.
VCAPServices
Ein JSON-Objekt, bei dem die Schlüssel Dienstlabels und die Werte ein Array von VCAPService
sind. Das Array stellt jeden gebundenen Dienst mit diesem Label dar.
Vom Nutzer bereitgestellte Dienste werden mit dem Label user-provided
platziert.
Beispiel
{
"mysql": [...],
"postgresql": [...],
"user-provided": [...]
}
VCAPService
Dieser Typ stellt eine einzelne Instanz eines gebundenen Dienstes dar.
Beispiel
{
"binding_name": string,
"instance_name": string,
"name": string,
"label": string,
"tags": string[],
"plan": string,
"credentials": object
}
Felder
Feld | Typ | Beschreibung |
---|---|---|
binding_name |
string |
Der Name, der der Dienstbindung durch den Nutzer zugewiesen wurde. |
instance_name |
string |
Der Name, der der Dienstinstanz vom Nutzer zugewiesen wurde. |
name |
string |
binding_name , falls vorhanden, andernfalls instance_name . |
label |
string |
Der Name des Dienstangebots. |
tags |
string[] |
Ein Stringarray, mit dem eine Anwendung eine Dienstinstanz identifizieren kann. |
plan |
string[] |
Der beim Erstellen der Dienstinstanz ausgewählte Serviceplan. |
credentials |
object |
Die dienstspezifischen Anmeldedaten für den Zugriff auf die Dienstinstanz. |
VCAP_APPLICATION
Die Umgebungsvariable VCAP_APPLICATION
ist ein JSON-Objekt mit Metadaten zur Anwendung.
Beispiel
{
"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"]
}
Felder
Feld | Typ | Beschreibung |
---|---|---|
application_id |
string |
Die GUID zur Identifizierung der Anwendung. |
application_name |
string |
Der Name, der der Anwendung bei der Übertragung zugewiesen wurde. |
application_uris |
string[] |
Die URIs, die der Anwendung zugewiesen sind. |
limits |
object |
Der für die Anwendung zulässige Arbeitsspeicher und Speicherplatzlimits. Die Limits für Arbeitsspeicher und Speicherplatz werden beim Bereitstellen der Anwendung entweder über die Befehlszeile oder im App-Manifest festgelegt. Speicherplatz- und Arbeitsspeicherlimits werden als Ganzzahlen dargestellt, mit einer angenommenen MB-Einheit. |
name |
string |
Identisch mit application_name . |
process_id |
string |
Die UID, die den Prozess identifiziert. Wird nur beim Ausführen von App-Containern angezeigt. |
process_type |
string |
Die Art des Prozesses. Wird nur beim Ausführen von App-Containern angezeigt. |
space_name |
string |
Der für Menschen lesbare Name des Speicherplatzes, in dem die Anwendung bereitgestellt wird. |
uris |
string[] |
Identisch mit application_uris . |
Fehlende Felder
Einige Felder in VCAP_APPLICATION
, die sich in Cloud Foundry befinden, werden derzeit in Kf nicht unterstützt.
Neben den CF-spezifischen und veralteten Feldern (cf_api
, host
, users
) werden in Kf folgende Felder nicht unterstützt:
application_version
(identisch mitversion
)organization_id
organization_name
space_id
start
(identisch mitstarted_at
)started_at_timestamp
(identisch mitstate_timestamp
)