部署应用

在将应用(通过 kf push)推送到 Kf 时,Kf 使用以下三个生命周期来获取源代码并允许其处理流量:

  1. 源代码上传
  2. 构建
  3. 运行

源代码上传

在您进行 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 任务。Kf 目前具有以下 Tekton 任务:

  • buildpackv2
  • buildpackv3
  • kaniko

Kf 将每个 TaskRun 作为一个构建进行跟踪。如果构建成功,则通过运行生命周期部署生成的容器映像(如下所述)。

如需了解详情,请参阅构建运行时

运行

运行生命周期负责获取容器映像并创建 Kubernetes Deployment

它还会创建:

如需了解详情,请参阅构建运行时

推送超时

Kf 支持设置环境变量,以指示 CLI 在推送应用时超时。如果设置此选项,则变量 KF_STARTUP_TIMEOUTCF_STARTUP_TIMEOUT 将被解析为 Golang 样式的时长(例如 15m1h)。如果未设置值,则推送超时默认为 15 分钟。