本文將說明 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 設定檔操作說明。