谷歌宣布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的通知。這個空間里的其他工具包括牽伸、傾斜、鍛造和花園。