Knative提供了簡單的應用模型,并且支持流量管理能力,支持根據流量百分比進行灰度發布。您可以通過云效實現Knative服務的持續交付,簡化應用部署、灰度發布等操作,讓您專注于業務開發。本文以基于Java代碼構建Docker鏡像、推送至ACR鏡像倉庫并部署到ACK集群為例,介紹如何通過云效實現Knative服務的持續交付。
前提條件
已在集群中部署Knative,請參見部署Knative。
已創建ACR鏡像倉庫,請參見創建個人版實例、使用企業版實例構建鏡像、個人版和企業版實例差異化說明。
為了能夠快速拉取鏡像,建議ACK集群與ACR處于同一地域。若不在同一地域,請選擇VPC公網地址。
步驟一:創建流水線
登錄云效工作臺,單擊云效產品區域的流水線。
在流水線 Flow頁面,單擊新建流水線。在選擇流水線模板對話框,選擇如下模板,單擊創建。
步驟二:配置代碼源
在添加流水線源面板,選擇代碼源,單擊添加。本文選擇Flow提供的示例代碼源。
步驟三:配置鏡像構建任務
在構建區域,單擊Java 構建Docker鏡像并推送鏡像倉庫。在編輯面板,配置相關配置項。示例如下所示。
單擊鏡像構建并推送至阿里云倉庫鏡像個人版,選擇地域和倉庫,本示例選擇的鏡像倉庫為個人版實例。
在標簽文本框輸入${DATETIME},表示以流水線觸發時的時間戳作為鏡像的標簽,您也可以將分支名或者Tag作為鏡像的標簽。
在Dockerfile路徑文本框輸入Dockerfile。
在任務輸出區域,您可以看到該任務輸出的變量,這些變量會在后續的任務中引用。
步驟四:配置部署任務
在部署區域,單擊Kubernetes發布。
在編輯面板,單擊任務步驟下的Kubectl發布。單擊集群連接右側的新建連接。
在連接到Kubernetes集群對話框,集群類型選擇容器服務集群,選擇需要連接的集群,然后單擊保存。
如果您沒有進行過授權,可以單擊去授權,完成集群授權后,再進行集群選擇。
配置YAML路徑。本文配置為app-configs/knative。
配置變量。單擊變量右邊的添加,選擇上游任務 制品/鏡像 下載地址,輸入名稱為image,選擇鏡像的VPC地址作為變量值。
在運行時,Flow會把YAML路徑下所有文件中的${image}都替換成鏡像的地址,然后再進行kubectl發布。
步驟五:運行流水線
單擊頁面右上方的保存并運行觸發流水線。
在Knative產品頁面,查看服務是否部署成功。
登錄容器服務管理控制臺。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
使用以下命令進行驗證。
$ curl -H "Host: spring-boot-knative.default.example.com" http:{訪問網關的地址}
預期輸出結果如下所示,表明服務已經部署成功。
Greetings from Spring Boot! V4
相關文檔
關于使用Knative時可能遇到的常見問題及對應的解決方案,請參見Knative FAQ。