Skaffold

Skaffold 是谷歌开源的简化本地 Kubernetes 应用开发的工具。它将构建镜像、推送镜像以及部署 Kubernetes 服务等流程自动化,可以方便地对 Kubernetes 应用进行持续开发。其功能特点包括

  • 没有服务器组件

  • 自动检测代码更改并自动构建、推送和部署服务

  • 自动管理镜像标签

  • 支持已有工作流

  • 保存文件即部署

安装

使用

在使用 skaffold 之前需要确保

  • Kubernetes 集群已部署并配置好本地 kubectl 命令行

  • 本地 Docker 处于运行状态并登录 DockerHub 或其他的 Docker Registry

  • skaffold 命令行已下载并放到系统 PATH 路径中

skaffold 代码库提供了一些列的示例,我们来看一个最简单的。

下载示例应用:

修改 k8s-pod.yamlskaffold.yaml 文件中的镜像,将 gcr.io/k8s-skaffold 替换为已登录的 Docker Registry。然后运行 skaffold

此时,打开另外一个终端,修改 main.go 的内容后 skaffold 会自动执行

  • 构建一个新的镜像(带有不同的 sha256 TAG)

  • 修改 k8s-pod.yaml 文件中的镜像为新的 TAG

  • 重新部署 k8s-pod.yaml

最后更新于