Rancher upgrade webhook之CI/CD
概述
結合大家CI/CD的應用場景,本篇Blog旨在介紹如何通過Rancher的webhook微服務來實現CI/CD的聯動。
流程介紹
本次實踐的主要流程如下:
CI/CD console從代碼托管、配置中心、第三方依賴平臺拉取應用相應的代碼,配置、依賴、并構建應用鏡像。
將構建好的應用鏡像推送到鏡像倉庫。
通過Rancher Server暴露出來的API/UI/CLI創建并啟動應用棧。
在Rancher Server上創建upgrade類型的webhook。
更新應用、重新構建應用鏡像,同時推送到鏡像倉庫。
觸發Dev環境的webhook,完成Dev環境的服務升級。
Dev環境驗證升級是否成功,應用是否正常。
觸發Beta環境的webhook,完成Beta環境的服務升級。
Beta環境驗證升級是否成功,應用是否正常。
出發Prod環境的webhook,完成Prod環境的服務升級。
Prod環境驗證升級是否成功,應用是否正常。
webhook介紹
Rancher webhook的服務流程大致如下:
router根據用戶提交過來的method和url初始化對應的handler。
handler解析請求參數里面的key和projectid初始化對應的webhook driver。
driver調用升級接口,返回并相應觸發webhook的請求。
環境準備
Platform
Mac,Windows,Linux,Docker Cloud,AWS,Azure均可部署。
本次準備的平臺是Ubuntu發行版(14.04),為了兼容docker,選擇linux發行版的時候內核需控制在3.10以上。
Docker
根據用戶選擇的平臺安裝docker引擎,安裝指導可參考官方文檔,搭配Rancher使用,docker引擎版本最優選擇1.12.6或者1.13.1。
本次準備的docker引擎版本是1.12.6。
Rancher
CI/CD
Build應用鏡像
示例應用基于NGX官方鏡像build,修改了NGX welcome頁面信息
Push應用鏡像
推送NGX應用鏡像到指定的遠程鏡像倉庫
創建Stack&Service
通過API創建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'驗證服務
打開瀏覽器,訪問NGX服務,確認應用的內容。
創建webhook
進入webhook創建頁面,通過UI為Dev,Beta,Prod 環境創建service upgrade webhook。
(注意設置好對應的鏡像TAG和服務標簽)
更新并push應用鏡像
更新NGX應用、構建鏡像,并推送到遠程倉庫。
觸發upgrade webhook
觸發upgrade webhoook,實現服務自動升級。
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服務,驗證服務升級內容是否正常。
CD
循環3.7&3.8的步驟,完成并驗證測試環境和線上環境的持續部署。
原文來源:Rancher Labs
9月27日,北京海航萬豪酒店,容器技術大會Container Day 2017即將舉行。
CloudStack之父、海航科技技術總監、華為PaaS部門部長、恒豐銀行科技部總經理、阿里云PaaS工程總監、民生保險CIO······均已加入豪華講師套餐!
11家已容器落地企業,15位真·云計算大咖,13場純·技術演講,結合實戰場景,聚焦落地經驗。免費參會+超高規格,詳細議程及注冊鏈接請戳
轉載于:https://blog.51cto.com/12462495/1955094
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Rancher upgrade webhook之CI/CD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言实战读书笔记
- 下一篇: 6.虚拟机类加载机制