• <cite id="ulafn"></cite>
  • <dd id="ulafn"><font id="ulafn"></font></dd>

            從奧軟件(上海)有限公司
            k8s自動化編排工作流

            k8s自動化編排工作流

            如何在每次推送時自動化Kubernetes版本?

            技術(shù)開發(fā) 編程 技術(shù)框架 技術(shù)發(fā)展

             

            k8s自動化編排工作流

            如何在每次推送時自動化Kubernetes版本?

            Kubernetes是用于部署,擴展和運行應(yīng)用程序的基于容器的平臺。Buddy使您可以通過一系列專用的K8s動作使Kubernetes交付工作流程自動化。

            image.png

            每次更改應(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ā)管道的分支

            image.png

            添加構(gòu)建Docker映像操作。將選項卡切換到選項,然后從Docker注冊表下的下拉列表中選擇Docker Hub 。選擇Dockerfile路徑,Docker存儲庫以及您要推送的映像的名稱。

            image.png

            根據(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)更新圖像的更多信息。

            image.png

            方案2:如果您使用kubectl apply,請執(zhí)行Apply K8s Deployment操作:

            隨著YAML配置或應(yīng)用程序代碼中的每一次更改,Buddy將應(yīng)用部署,并且Kubernetes將開始將容器轉(zhuǎn)換為所需狀態(tài)。

            該操作將等待部署狀態(tài),并檢查其部署狀態(tài)。如果發(fā)生任何錯誤,則管道將以“失敗”的形式停止。

            image.png

            如何自動運行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(第二步)

            image.png

            C.使用先前構(gòu)建的映像觸發(fā)數(shù)據(jù)庫遷移(第三步)。您可以使用YAML文件定義映像,命令和部署:

            image.png

            推送后,管道將自動生成映像并將其推送到存儲庫并運行遷移腳本。多么酷啊?

            作業(yè)動作將等待,直到命令執(zhí)行完畢。如果退出狀態(tài)不同于0,則該操作將被標(biāo)記為“失敗”

            D.最后一個動作是使用“應(yīng)用K8s部署”或“設(shè)置K8s映像”來更新K8s應(yīng)用程序中的映像。添加動作后,整個管道將如下所示:

            image.png

            一切就緒后,再次推動,觀察Buddy自動執(zhí)行整個工作流程。

            技術(shù)開發(fā) 編程 技術(shù)框架 技術(shù)發(fā)展

            精品国产成人免费网站,欧美色成人综合天天影院,日韩欧美一级成人片在线,无码成人亚洲AV片 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();