在将应用(通过 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 任务。Kf 目前具有以下 Tekton 任务:
- buildpackv2
- buildpackv3
- kaniko
Kf 将每个 TaskRun 作为一个构建进行跟踪。如果构建成功,则通过运行生命周期部署生成的容器映像(如下所述)。
如需了解详情,请参阅构建运行时。
运行
运行生命周期负责获取容器映像并创建 Kubernetes Deployment。
它还会创建:
- Istio 虚拟服务
- Kubernetes Secret
如需了解详情,请参阅构建运行时。
推送超时
Kf 支持设置环境变量,以指示 CLI 在推送应用时超时。如果设置此选项,则变量 KF_STARTUP_TIMEOUT
或 CF_STARTUP_TIMEOUT
将被解析为 Golang 样式的时长(例如 15m
、1h
)。如果未设置值,则推送超时默认为 15 分钟。