Rancher upgrade webhook之CI/CD
概述
結(jié)合大家CI/CD的應(yīng)用場景,本篇Blog旨在介紹如何通過Rancher的webhook微服務(wù)來實現(xiàn)CI/CD的聯(lián)動。
流程介紹
本次實踐的主要流程如下:
CI/CD console從代碼托管、配置中心、第三方依賴平臺拉取應(yīng)用相應(yīng)的代碼,配置、依賴、并構(gòu)建應(yīng)用鏡像。
將構(gòu)建好的應(yīng)用鏡像推送到鏡像倉庫。
通過Rancher Server暴露出來的API/UI/CLI創(chuàng)建并啟動應(yīng)用棧。
在Rancher Server上創(chuàng)建upgrade類型的webhook。
更新應(yīng)用、重新構(gòu)建應(yīng)用鏡像,同時推送到鏡像倉庫。
觸發(fā)Dev環(huán)境的webhook,完成Dev環(huán)境的服務(wù)升級。
Dev環(huán)境驗證升級是否成功,應(yīng)用是否正常。
觸發(fā)Beta環(huán)境的webhook,完成Beta環(huán)境的服務(wù)升級。
Beta環(huán)境驗證升級是否成功,應(yīng)用是否正常。
出發(fā)Prod環(huán)境的webhook,完成Prod環(huán)境的服務(wù)升級。
Prod環(huán)境驗證升級是否成功,應(yīng)用是否正常。
webhook介紹
Rancher webhook的服務(wù)流程大致如下:
router根據(jù)用戶提交過來的method和url初始化對應(yīng)的handler。
handler解析請求參數(shù)里面的key和projectid初始化對應(yīng)的webhook driver。
driver調(diào)用升級接口,返回并相應(yīng)觸發(fā)webhook的請求。
環(huán)境準(zhǔn)備
Platform
Mac,Windows,Linux,Docker Cloud,AWS,Azure均可部署。
本次準(zhǔn)備的平臺是Ubuntu發(fā)行版(14.04),為了兼容docker,選擇linux發(fā)行版的時候內(nèi)核需控制在3.10以上。
Docker
根據(jù)用戶選擇的平臺安裝docker引擎,安裝指導(dǎo)可參考官方文檔,搭配Rancher使用,docker引擎版本最優(yōu)選擇1.12.6或者1.13.1。
本次準(zhǔn)備的docker引擎版本是1.12.6。
Rancher
CI/CD
Build應(yīng)用鏡像
示例應(yīng)用基于NGX官方鏡像build,修改了NGX welcome頁面信息
Push應(yīng)用鏡像
推送NGX應(yīng)用鏡像到指定的遠(yuǎn)程鏡像倉庫
創(chuàng)建Stack&Service
通過API創(chuàng)建webapp stack,NGX service,命令行如下
curl?-u?"xxx:xxx"?\ -X?POST?\ -H?'Accept:?application/json'?\ -H?'Content-Type:?application/json'?\ -d?'{ "description":?"validate?the?upgrade?service?using?webhook", "name":?"webapp", "system":?false, "dockerCompose":?"version:?'2'\nservices:\n??NGX:\n????p_w_picpath:?anzersy/nginx:20170801\n????stdin_open:? true\n????tty:?true\n????cpuset:?\"0\"\n????ports:\n????-?8787:80/tcp\n????cpu_shares:?1024\n???? labels:\n??????io.rancher.container.pull_p_w_picpath:?always\n??????servicename:?nginx", "rancherCompose":?"version:?'2'\nservices:\n??NGX:\n????scale:?1\n????start_on_create:?true", "binding":?null, "startOnCreate":?true }'?'http://a.b.c.d:e/v2-beta/projects/1a107/stacks'驗證服務(wù)
打開瀏覽器,訪問NGX服務(wù),確認(rèn)應(yīng)用的內(nèi)容。
創(chuàng)建webhook
進(jìn)入webhook創(chuàng)建頁面,通過UI為Dev,Beta,Prod 環(huán)境創(chuàng)建service upgrade webhook。
(注意設(shè)置好對應(yīng)的鏡像TAG和服務(wù)標(biāo)簽)
更新并push應(yīng)用鏡像
更新NGX應(yīng)用、構(gòu)建鏡像,并推送到遠(yuǎn)程倉庫。
觸發(fā)upgrade webhook
觸發(fā)upgrade webhoook,實現(xiàn)服務(wù)自動升級。
curl?-u?"xxx:xxx"?\ -X?POST?\ -H?'Accept:?application/json'?\ -H?'Content-Type:?application/json'?\ -d?'{"push_data":?{"tag":?"20170801"},"repository":?{"repo_name":?"anzersy/nginx"} }'?'http://a.b.c.d:e/v1-驗證更新
打開瀏覽器,訪問NGX服務(wù),驗證服務(wù)升級內(nèi)容是否正常。
CD
循環(huán)3.7&3.8的步驟,完成并驗證測試環(huán)境和線上環(huán)境的持續(xù)部署。
原文來源:Rancher Labs
9月27日,北京海航萬豪酒店,容器技術(shù)大會Container Day 2017即將舉行。
CloudStack之父、海航科技技術(shù)總監(jiān)、華為PaaS部門部長、恒豐銀行科技部總經(jīng)理、阿里云PaaS工程總監(jiān)、民生保險CIO······均已加入豪華講師套餐!
11家已容器落地企業(yè),15位真·云計算大咖,13場純·技術(shù)演講,結(jié)合實戰(zhàn)場景,聚焦落地經(jīng)驗。免費參會+超高規(guī)格,詳細(xì)議程及注冊鏈接請戳
轉(zhuǎn)載于:https://blog.51cto.com/12462495/1955094
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Rancher upgrade webhook之CI/CD的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言实战读书笔记
- 下一篇: 6.虚拟机类加载机制