谷歌宣布Skaffold的普遍可用性 以方便Kubernetes的发展
谷歌宣布了Skaffold的通用可用性(GA),这是一个在开发和部署到Kubernetes时简化通用任务的工具。Skaffold可以在开发模式中自动检测和部署更改,并在部署模式中构建、测试和部署更改。Skaffold在其管道的各个阶段支持多种工具。
Skaffold以两种模式运行——开发和部署。在前一种模式中,通过“skaffold dev”调用,它会监视本地源代码的更改,并在检测到更改时进行构建和部署。在“skaffold run”调用的后一种模式中,它只构建一次,然后部署和退出,因此适合CI/CD管道。Skaffold支持用于其管道中的各个阶段的多种工具。对于构建,它可以使用Dockerfiles、Kaniko、谷歌云构建、Bazel、maven和gradle。它支持容器结构测试来验证构建的映像。容器结构测试提供了YAML配置驱动的方式来运行各种测试。对于部署,它可以与kubectl、Helm和kustomize一起工作。
在dev模式下,Skaffold将运行中的容器的日志输出管道化,并管理从部署的应用程序到本地机器的端口转发。它可以在文件更改时直接将文件同步到正在运行的容器中,并在重新构建时使用更新的图像标记更新Kubernetes清单。Skaffold工作流由一个由多个阶段组成的“管道”组成。如果阶段与上下文无关,可以跳过它们——例如,当部署的目标是本地Minikube时,不要将工件推送到远程存储库。
Skaffold是去年在alpha上发布的。GA版本还增加了对云本地构建包的实验性支持,通过自动安装依赖项并根据编程语言构建,这使得开发人员更容易构建容器映像。
为了在不同的上下文中使用不同的工具集,Skaffold支持“配置文件”。指定Skaffold配置文件中的构建、测试和部署工具可以覆盖Skaffold中提到的工具。它是应用程序根目录中的基本配置文件。人们可以为不同的环境使用不同的配置文件——dev、staging和prod——并相应地更改其中使用的工具。
Skaffold还公开了一个API来与工作流中的其他工具集成。例如,部署监视仪表板可以侦听来自Events API的通知。这个空间里的其他工具包括牵伸、倾斜、锻造和花园。