您可以通過云效流水線從源碼倉庫構建鏡像,并使用K8s YAML文件自動部署SAE應用。本文將通過簡單的示例演示上述流程,并引導您將其用于實際業務。
方案概覽
實現本方案需要執行以下步驟:
上傳源碼
配置云效流水線
設置代碼源
鏡像構建與上傳
部署SAE應用
運行云效流水線并驗證結果
快速體驗
1. 上傳源碼
您可以將示例代碼spring-boot-demo.zip上傳到源碼倉庫中(例如自建Gitlab、Codeup、Github),用于快速體驗流程。
示例代碼中相關文件的作用如下:
Dockerfile
:用于從源碼構建鏡像。manifests/dp.yaml
:通過K8s YAML文件指定SAE部署應用時的配置信息。
2. 配置云效流水線
登錄云效流水線控制臺,單擊新建流水線。
為了演示完整流程,本文使用空模板來創建流水線。選擇空模板.空模板。單擊創建。
2. 1 設置代碼源
在流程配置頁面,單擊添加流水線源。選擇代碼源為示例代碼所在的源碼倉庫類型,配置示例代碼所在的代碼倉庫和使用的默認分支。
初次使用時,需要添加服務連接或企業公鑰來授權云效流水線訪問您的源碼倉庫。
2. 2 鏡像構建與上傳
在流水線的下個階段,添加任務來執行鏡像構建與上傳:
單擊系統默認創建的空任務節點,在編輯頁面配置以下信息:
選擇構建集群為云效中國香港構建集群,因為示例代碼的
Dockerfile
中包含海外的鏡像依賴。選擇構建節點,僅支持Linux/amd64。
單擊添加步驟,在構建類別中根據實際情況選擇鏡像構建并推送至ACR(個人版)或鏡像構建并推送至ACR(企業版)。
本文假定您已開通容器鏡像服務,且已創建個人版實例或創建企業版實例。
鏡像構建并推送至ACR(個人版)
初次使用時,需要添加服務連接來授權云效流水線訪問容器鏡像服務。
需要配置以下信息:
選擇鏡像上傳的目標地域、倉庫。
設置標簽。可以為固定參數例如
1.0
,或者動態參數例如${DATETIME}
,表示鏡像被推送到ACR后,將會以當前日期時間作為版本名稱。設置Dockerfile路徑。由于示例代碼的
Dockerfile
文件位于代碼庫根目錄,因此設置為Dockerfile
。
鏡像構建并推送至ACR(企業版)
初次使用時,需要添加服務連接來授權云效流水線訪問容器鏡像服務。
需要配置以下信息:
選擇鏡像上傳的目標地域、企業實例、命名空間、倉庫。
設置標簽。可以為固定參數例如
1.0
,或者動態參數例如${DATETIME}
,表示鏡像被推送到ACR后,將會以當前日期時間作為版本名稱。設置Dockerfile路徑。由于示例代碼的
Dockerfile
文件位于代碼庫根目錄,因此設置為Dockerfile
。
2. 3 部署SAE應用
在流水線的下個階段,添加任務來部署SAE應用:
單擊新的任務,選擇空白任務模板創建一個任務,在編輯頁面配置以下信息:
選擇構建節點,僅支持Linux/amd64。
單擊添加步驟,在發布類別中選擇Kubectl SAE 發布。
初次使用時,需要添加服務連接來授權云效流水線訪問SAE。
需要配置以下信息:
選擇SAE目標應用所屬的地域、命名空間。為簡化流程,本示例設置命名空間為default,即默認命名空間。
設置YAML路徑。由于示例代碼的YAML文件位于代碼庫
manifests
目錄下,因此設置為manifests
。設置變量。由于示例代碼的YAML文件中引用了變量
IMAGE
,因此添加如下變量定義IMAGE = 鏡像構建并推送至ACR(個人版/企業版).鏡像公網地址
。在部署應用時,會自動替換變量。
3. 運行云效流水線并驗證結果
保存并運行流水線。
運行完成后,可以點擊各節點的日志,查看任務的執行過程和結果。部署SAE應用的節點日志中包含所有掃描到的YAML文件、通過K8s部署應用的標準輸出、資源概要信息。
登錄SAE控制臺,在左側導航欄選擇 ,然后選擇目標地域和目標命名空間。可以查看已部署的應用,應用名稱為
test-deployment
。
4. 清理資源
單擊已部署的應用,在基礎信息頁面,單擊
。根據頁面提示,完成應用的刪除。了解更多
工作原理
云效流水線利用kubectl-sae工具,根據代碼源包含的YAML文件操作SAE應用底層的Kubernetes集群資源,實現 SAE 上的應用部署與資源管理。
如果您希望了解如何在本地或云服務器ECS中使用kubectl-sae工具,請參見kubectl-sae工具快速入門。
在您的生產環境中使用
編寫YAML文件
如果您希望了解如何編寫YAML文件,請參見kubectl-sae工具目錄下的相關文檔。
示例代碼中使用manifests/dp.yaml
指定SAE部署應用時的配置信息。生產環境中,您也可以在manifests
路徑下包含多個YAML文件,管理SAE的多種資源。根據多個YAML文件執行資源部署時不能保證執行順序,如果您對執行順序有要求,建議拆分成多個流水線按照您期望的順序手動執行。
設置正確的文件路徑
生產環境中,代碼源的Dockerfile文件、YAML文件的路徑可能與示例代碼不同。配置云效流水線時,需要設置正確的路徑。
設置Dockerfile路徑:Dockerfile相對于代碼庫根目錄的路徑,如
META/config/Dockerfile
或Dockerfile
。設置YAML路徑:YAML文件的父目錄相對于代碼庫根目錄的路徑,例如
manifests
路徑下包含YAML文件,則設置為manifests
。
自定義流水線
根據業務需求,您可以在流水線中添加代碼掃描、測試等任務節點。
代碼源自動觸發流水線
如果您希望上傳代碼等操作可以自動觸發流水線的執行,請參見代碼源觸發。