將應用程式 (透過 kf push
) 推送至 Kf 時,Kf 會使用三個生命週期來取得您的原始碼,並允許處理流量:
- 上傳原始碼
- 建構
- 執行
上傳原始碼
您執行 kf push
時,首先會發生 Kf CLI (kf
) 將目錄 (目前或 --path/-p
) 封裝到容器中,並將其發布至為工作區設定的容器登錄。這稱為來源容器。接著,Kf CLI 會在 Kubernetes 中建立 App
類型,其中包含應用程式資訊清單和推送標記中的來源映像檔和設定。
在推送期間忽略檔案
在許多情況下,您不會在 kf push
期間上傳特定檔案 (例如)。這時就可以使用 .kfignore
(或 .cfignore
) 檔案。與 .gitignore
檔案類似,這個檔案會指示 Kf CLI 不要將哪些檔案納入來源程式碼容器。
如要建立 .kfignore
檔案,請在應用程式的基礎目錄中建立名為 .kfignore
的文字檔案 (類似儲存資訊清單檔案的位置)。然後填入不想發布的檔案和目錄清單,並以換行符號分隔。例如:
bin
.idea
這會告訴 Kf CLI 不要在 bin
或 .idea
目錄中加入任何內容。
Kf 支援 gitignore 樣式語法。
建構
建構生命週期由 Tekton TaskRun 處理。系統會根據您在推送時提供的標記,選擇特定的 Tekton Task。Kf 目前有下列 Tekton 工作:
- buildpackv2
- buildpackv3
- kaniko
Kf 會將每個 TaskRun 視為 Build 進行追蹤。如果建構作業成功,系統會透過執行生命週期 (如下所述) 部署產生的容器映像檔。
詳情請參閱「建構執行階段」。
執行
Run 生命週期負責取得容器映像檔,並建立 Kubernetes 部署作業。
並建立下列項目:
詳情請參閱「建構執行階段」。
推送逾時時間
Kf 支援設定環境變數,以便在推送應用程式時指示 CLI 逾時。如果已設定,變數 KF_STARTUP_TIMEOUT
或 CF_STARTUP_TIMEOUT
會解析為 Golang 樣式的時間長度 (例如 15m
、1h
)。如果未設定值,則推送逾時時間預設為 15 分鐘。