k8s自動化編排工作流
如何在每次推送時自動化Kubernetes版本?
Kubernetes是用于部署,擴展和運行應(yīng)用程序的基于容器的平臺。Buddy使您可以通過一系列專用的K8s動作使Kubernetes交付工作流程自動化。
每次更改應(yīng)用程序代碼或Kubernetes配置時,都有兩個選項來更新集群:kubectl apply或kubectl set image。
在這種情況下,您的工作流程通常如下所示:
編輯代碼或配置.YML
將其推送到您的Git存儲庫
構(gòu)建一個新的Docker映像
推送Docker映像
登錄到您的K8s集群
運行kubectl apply或kubectl set image
使用Buddy,您可以通過簡單地按一下Git來避免大多數(shù)這些步驟!:)
本指南中使用的操作:
構(gòu)建Docker映像
推送Docker映像
運行Kubernetes作業(yè)
設(shè)置Kubernetes映像
應(yīng)用Kubernetes部署
如何在每次推送時自動化Kubernetes版本
Buddy是一個持續(xù)交付工具,可用于自動執(zhí)行整個K8s發(fā)布工作流程,包括:
管理K8s部署的配置更改
部署代碼更改
管理Dockerfile更新
構(gòu)建Docker映像并將其推送到Docker注冊表
在您的K8s集群上應(yīng)用新映像
如果您經(jīng)常使用kubectl apply或kubectl set image,這是給您的!
配置交付管道
添加新管道,將觸發(fā)模式設(shè)置為每次按下,然后選擇將觸發(fā)管道的分支
添加構(gòu)建Docker映像操作。將選項卡切換到選項,然后從Docker注冊表下的下拉列表中選擇Docker Hub 。選擇Dockerfile路徑,Docker存儲庫以及您要推送的映像的名稱。
根據(jù)您的方案,添加“設(shè)置K8s映像”或“應(yīng)用K8s部署”操作
您可以將標(biāo)簽的修訂版本號與環(huán)境變量一起使用。
方案1:如果您使用kubectl設(shè)置圖像,請執(zhí)行“設(shè)置K8s圖像”操作:
選擇應(yīng)更換的容器以及要使用的圖像。確保輸入上面步驟2中的圖像名稱和標(biāo)簽。
Buddy將關(guān)閉正在運行的節(jié)點,并使用新的映像版本將它們重新打開。
如果您使用的標(biāo)記在每次執(zhí)行時都保持不變(例如branchName),但與“最新”標(biāo)記不同,請確保將提取策略設(shè)置為“始終”。了解有關(guān)更新圖像的更多信息。
方案2:如果您使用kubectl apply,請執(zhí)行Apply K8s Deployment操作:
隨著YAML配置或應(yīng)用程序代碼中的每一次更改,Buddy將應(yīng)用部署,并且Kubernetes將開始將容器轉(zhuǎn)換為所需狀態(tài)。
該操作將等待部署狀態(tài),并檢查其部署狀態(tài)。如果發(fā)生任何錯誤,則管道將以“失敗”的形式停止。
如何自動運行Kubernetes Pod或作業(yè)
如果您經(jīng)常在容器中運行任務(wù),例如:
新版本部署期間的數(shù)據(jù)庫遷移
備份
批處理作業(yè),例如 為新版本的應(yīng)用程序創(chuàng)建目錄結(jié)構(gòu)
您可以使用廣告連播或工作。第一種啟動帶有任務(wù)的單個吊艙;第二種啟動任務(wù)。第二個將啟動一系列Pod,直到其中指定數(shù)量的Pod以成功狀態(tài)結(jié)束。
用于運行Kubernetes Pod或作業(yè)的管道配置
假設(shè)您在K8s集群上有一個應(yīng)用程序,并且存儲庫包含以下內(nèi)容:
您的應(yīng)用程序的源代碼
Dockerfile,其中包含有關(guān)創(chuàng)建應(yīng)用程序映像的說明
數(shù)據(jù)庫遷移腳本
Dockerfile,其中包含有關(guān)創(chuàng)建映像的說明,該映像將在部署期間運行遷移(數(shù)據(jù)庫遷移運行程序)
在這種情況下,您可以配置管道,該管道將:
A.構(gòu)建應(yīng)用程序并遷移圖像(第一個動作)
B.將它們推送到Docker Hub(第二步)
C.使用先前構(gòu)建的映像觸發(fā)數(shù)據(jù)庫遷移(第三步)。您可以使用YAML文件定義映像,命令和部署:
推送后,管道將自動生成映像并將其推送到存儲庫并運行遷移腳本。多么酷啊?
作業(yè)動作將等待,直到命令執(zhí)行完畢。如果退出狀態(tài)不同于0,則該操作將被標(biāo)記為“失敗”
D.最后一個動作是使用“應(yīng)用K8s部署”或“設(shè)置K8s映像”來更新K8s應(yīng)用程序中的映像。添加動作后,整個管道將如下所示:
一切就緒后,再次推動,觀察Buddy自動執(zhí)行整個工作流程。