Anwendungslaufzeit

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:

  1. Bereich (von Administratoren festgelegt)
  2. Anwendung (von Entwicklern festgelegt)
  3. 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 mit version)
  • organization_id
  • organization_name
  • space_id
  • start (identisch mit started_at)
  • started_at_timestamp (identisch mit state_timestamp)