本文將說明 Skaffold、Cloud Deploy 使用該工具的方式和原因,以及如何讓該工具為您服務。
Cloud Deploy 會使用 Skaffold 進行算繪和部署作業。您也可以用於本機開發、建構、測試和進階部署功能。不過,Cloud Deploy 只需要 Skaffold 設定,用於識別要轉譯及套用的資訊清單。
什麼是 Skaffold?
Skaffold 是一項指令列工具,可為 Kubernetes 原生應用程式提供持續開發功能。您可以使用 Skaffold 設定本機開發工作區,以便與 Cloud Deploy 持續部署管道搭配使用。
Skaffold 包含下列功能:
- 可讓您個別控制 CI/CD 管道活動 (建構、轉譯、測試部署等)。 
- 這項工具可做為本機開發工具使用。 
- 您可以使用 Skaffold 設定檔,在同一個設定檔中區分不同的環境,並設定不同的建構、測試和部署設定。 
為什麼 Cloud Deploy 會使用 Skaffold?
Google Cloud Deploy 會使用 Skaffold 將算繪工具與提交管道分開。提交管道只會定義從一個目標到另一個目標的進度,而 Skaffold 設定則會定義要轉譯哪些資訊清單,以及如何轉譯。這樣一來,您就能靈活地轉換資訊清單,而不影響您定義的提交管道。
以下是 Skaffold 與 Cloud Deploy 搭配使用時的部分優點:
- 輕鬆上手 - 請先從本機開發迴圈開始。您可以將 - skaffold.yaml檔案與團隊分享,這樣一來就能確保一致性,並協助新團隊成員開始使用。
- 在各種部署目標上一致控管算繪作業 - 您可以使用 Skaffold 設定檔,為不同的目標提供不同的轉譯和部署作業。 
- 選擇轉譯工具,不影響定義提交管道的方式 - 使用 Skaffold 可讓 Cloud Deploy 將提交管道定義與算繪詳細資料分開。透過這種分離方式,您就能在不中斷發布管道運作情況下,嘗試使用資訊清單。 
- 一致的轉譯程序 - 轉譯來源加上容器可用於產生轉譯資訊清單。 
- 部署健康狀態檢查 - 由 Skaffold 執行,並由 Cloud Deploy 使用。 
Cloud Deploy 如何使用 Skaffold?
- 建立版本時,系統會將轉譯來源和容器映像檔參照項目傳遞至 Cloud Deploy。 - 在建立版本的過程中,Cloud Deploy 會呼叫 Cloud Build,而 Cloud Build 會依序呼叫 - skaffold diagnose和- skaffold render,以便使用該算繪來源和圖片算繪資訊清單或多個資訊清單。
- 您可以使用 Skaffold 設定檔,區分要套用至不同目標的資訊清單。 
- Cloud Deploy 支援靜態 Skaffold 模組。 
- 在部署時,Cloud Deploy 會呼叫 - skaffold apply,將轉譯完成的資訊清單套用至目標叢集。
- 除非您使用自訂目標,否則 Cloud Deploy 不支援使用其他部署工具部署應用程式。不過,您可以使用 Helm 或 Kustomize 等工具做為轉譯器。如要進一步瞭解如何在未使用特定部署工具 (例如 Helm) 的情況下,使用 Cloud Deploy 部署作業,請參閱「服務架構」。 
讓 Skaffold 為您效勞
- 根據管道需求設定 Skaffold。 - 決定推送管道的需求。 - 您有多少目標?每個項目的轉譯和部署作業是否相同。如果進度中的每個目標設定都相同,您就不需要使用 Skaffold 設定檔。您只需要一個 - skaffold.yaml檔案,說明要轉譯的資訊清單。
- 視需要為每個目標建立 Skaffold 設定檔 - 請在 - skaffold.yaml檔案中定義這項元素,並將其綁定至提交管道定義的進度序列。- 如要進一步瞭解 Skaffold 設定檔,請參閱 Skaffold 說明文件。此外,管理 Cloud Deploy 中的資訊清單說明文件也提供設定檔範例。 
- 設定 Skaffold 記錄詳細程度 - 根據預設,Skaffold 記錄層級會設為 - warn。您可以設定- verbose: true,在目標的執行環境設定中將其變更為- debug。
 
- 將 Cloud Deploy 連結至持續整合系統。 - 在持續整合程序結束時,請將 - skaffold.yaml、轉譯來源和要填入至轉譯資訊清單的容器映像檔傳遞。
- 選用步驟:使用 Skaffold 設定本機開發循環。 - 在 Cloud Deploy 中,使用 Skaffold 進行開發是可選功能。如要讓 Cloud Deploy 運作,您只需要提供 - skaffold.yaml檔案,用於識別要轉譯的資訊清單。
後續步驟
- 請造訪 Skaffold 網站,瞭解這項工具的運作方式和功能。 
- 瞭解 Cloud Deploy 如何選擇要使用的 Skaffold 版本、Skaffold 版本變更的時間,以及如何判斷目前使用的版本。 
- 瞭解如何搭配使用 Skaffold 設定檔和進階資訊清單管理工具,例如 Helm、Kustomize 和 kpt。 
- 請參閱 Skaffold 設定檔操作說明。