Flow 提供了通用的 Kubernetes 部署能力支援,通過內建的 Kubectl 工具將 Kubernetes YAML資源描述檔案部署到任意叢集中。在原生 Kubectl 的能力基礎上, Flow 還內建了動態模板的能力,從而協助使用者快速實現容器應用的構建與發布。本文主要介紹了如何通過Flow添加並配置Kubernetes發布任務,以及如何查看部署後的日誌。
方案概覽
添加部署任務
可以通過兩種形式添加部署任務。
-
建立流水線時,選擇包含 Kubernetes 發布的模板。
在 可視化編排 頁簽下,選擇左側 Java 分類,選中 Java · 測試、構建鏡像,發布到Kubernetes叢集/阿里雲Container Service 模板,單擊 建立。

-
在流水線中添加空任務,並添加 Kubernetes 發布步驟。
在工作面板左側選擇部署分類,在右側選擇Kubernetes發布。
配置部署任務
進入 Kubectl 步驟,進行如下配置:
-
選擇或者建立 Kubernetes叢集串連,關於如何建立 Kubernetes 叢集串連請參見Kubernetes叢集管理。
配置 Kubectl 發布步驟的其他參數:設定 Kubectl 版本(例如
v1.16.4)、命名空間(例如default)、YAML 路徑(例如app-configs/manifest2),並根據需要勾選 使用Replace模式、跳過 TLS 校正、跳過模板校正等選項,然後在 變數地區配置鏡像等參數。 -
輸入發布的目標命名空間。
-
輸入當前需要部署的YAML路徑,並添加需要傳遞的變數。
-
在 Kubernetes 資源描述 YAML 檔案中,通過${IMAGE} 預留位置將 Docker 鏡像定義為一個動態變數。
apiVersion: apps/v1 kind: Deployment metadata: labels: run: spring-boot-sample name: spring-boot-sample spec: replicas: 4 selector: matchLabels: run: spring-boot-sample template: metadata: labels: run: spring-boot-sample spec: containers: image: ${image} name: nginx -
在Kubectl 步驟中傳遞變數給 YAML檔案,在 Kubectl 步驟配置中,點擊添加變數,並定義變數名稱以及變數來源,即可發布時使用這些變數動態替換 YAML 檔案中的預留位置。在 Kubectl 發布 步驟的變數地區,將
image變數的值設定為鏡像構建步驟的輸出(即 鏡像構建並推送至阿里雲鏡像倉庫 步驟產出的鏡像地址),使部署時 YAML 中的 ${IMAGE} 預留位置被實際鏡像地址替換。同時配置叢集串連(如corefile-test)、Kubectl 版本(如v1.16.4)、命名空間(如default)及 YAML 路徑(如app-configs/manifest2)。
說明Kubernetes常用資源YAML使用方式,請參見Kubernetes常用資源 YAML 規範參考。
-
查看部署日誌
在配置完成後,運行流水線執行部署任務,即會將源碼中對應的 YAML 檔案部署到指定的Kubernetes 叢集中。
-
在部署過程中點擊日誌,可以查看當前的部署過程以及相應記錄。
-
日誌輸出中會包含當前所有掃描到的 YAML 檔案,kubectl apply後的標準輸出,以及當前變更執行後的所有資源概要資訊。
樣本中,
kubectl apply輸出deployment.apps/spring-boot-sample configured,資源概要顯示spring-boot-sample已運行 105m,最終提示[SUCCESS] 步驟運行成功,表明應用已成功部署到 Kubernetes 叢集。
Kubernetes常用資源 YAML 規範參考
工作負載
服務發現與網路
|
資源類型 |
官方文檔連結 |
|
Service |
https://kubernetes.io/docs/concepts/services-networking/service/ |
|
Ingress |
https://kubernetes.io/docs/concepts/services-networking/ingress/ |