Wenn Sie eine Anwendung (über kf push
) an Kf senden, gibt es drei Lebenszyklen, die verwendet werden, um Ihren Quellcode für die Verarbeitung von Traffic zu verwenden:
- Upload des Quellcodes
- Build
- Run
Upload des Quellcodes
Wenn Sie kf push
senden, lädt die Kf-Befehlszeile (kf
) zuerst Ihr Verzeichnis (entweder das aktuelle oder --path/-p
) in einen Container hoch und veröffentlicht ihn in der für den Space konfigurierten Container Registry. Dieser Container wird als Quellcontainer bezeichnet. Anschließend erstellt die Kf-Befehlszeile einen App
-Typ in Kubernetes, der sowohl das Quell-Image als auch die Konfiguration aus dem App-Manifest und den Push-Flags enthält.
Dateien während des Hochladens ignorieren
In vielen Fällen sollten bestimmte Dateien während kf push
nicht hochgeladen werden (d. h., dass sie sie "ignorieren").
Hier können Sie eine .kfignore
- (oder .cfignore
-Datei) verwenden.
Ähnlich wie eine .gitignore
-Datei weist diese Datei die Kf-Befehlszeile an, welche Dateien nicht in den Quellcode-Container aufgenommen werden sollen.
Erstellen Sie zum Anlegen einer .kfignore
-Datei eine Textdatei mit dem Namen .kfignore
im Basisverzeichnis der Anwendung (ähnlich dem Ort, an dem Sie die Manifestdatei speichern würden). Füllen Sie sie dann mit einer durch Zeilenumbrüche getrennte Liste von Dateien und Verzeichnissen, die nicht veröffentlicht werden sollen. Beispiel:
bin
.idea
Dadurch wird die Kf-Befehlszeile angewiesen, nichts in die Verzeichnisse bin
oder .idea
aufzunehmen.
Kf unterstützt die Syntax im Stil von gitignore.
Build
Der Build-Lebenszyklus wird von einem Tekton-TaskRun verwaltet. Abhängig von den Flags, die Sie während des Hochladens bereitstellen, wird eine bestimmte Tekton-Task ausgewählt. Kf verfügt aktuell über die folgenden Tekton-Aufgaben:
- buildpackv2
- buildpackv3
- kaniko
kf verfolgt jeden TaskRun als Build. Bei einem erfolgreichen Build wird das resultierende Container-Image dann über den Ausführungslebenszyklus bereitgestellt (siehe unten).
More information can be found at Build Runtime.
Run
Der Ausführungslebenszyklus ist für die Aufnahme eines Container-Images und das Erstellen eines Kubernetes-Deployments zuständig.
Außerdem wird erstellt:
More information can be found at Build Runtime.
Push-Zeitüberschreitung
Kf unterstützt das Festlegen einer Umgebungsvariable, die die Befehlszeile anweist, beim Senden von Anwendungen eine Zeitüberschreitung auszulösen. Wenn dieses Flag gesetzt ist, wird die Variable KF_STARTUP_TIMEOUT
oder CF_STARTUP_TIMEOUT
als Golang-Stildauer geparst, z. B. 15m
, 1h
. Wenn kein Wert festgelegt ist, beträgt die Push-Zeitüberschreitung standardmäßig 15 Minuten.