中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用VSTS跟Kubernetes整合進行CI/CD

發布時間:2021-07-27 21:57:46 來源:億速云 閱讀:148 作者:chen 欄目:大數據

這篇文章主要講解了“如何利用VSTS跟Kubernetes整合進行CI/CD”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何利用VSTS跟Kubernetes整合進行CI/CD”吧!

為什么VSTS要搭配Kubernetes?

通常我們在開發管理軟件項目的時候都會碰到一個很頭痛的問題,就是開發、測試、生產環境不一致,導致開發人員和測試人員甚至和運維吵架。

因為常見的物理環境甚至云環境中,這些部署環境都是由運維人員提前準備好的。每次更新代碼版本,都要很小心的在幾個環境之前修改不同的參數配置,一不小心就將生產環境的數據庫連接到了測試庫,或者日志文件的地址寫到了一個不存在的盤符里等等各種異常情況,有了Kubernetes這樣微服務編排框架,我們可以通過代碼的形式描述服務的架構,描述服務之間的依賴關系,做到了 Infrastructure As Code。這樣可以大大減少了開發運維之間在做環境切換時帶來的額外成本。

將VSTS的持續集成能力和持續發布能力整合Kubernetes,可以讓項目團隊更容易發現和改進代碼(這時候的Infrastructure也已經是代碼了)的問題,真正將精力放在改進用戶體驗和改進產品品質上。

準備VSTS管理環境

首先我們需要到www.visualstudio.com下申請好的VSTS賬號,然后在賬號下創建一個用Git作為代碼管理的項目

如何利用VSTS跟Kubernetes整合進行CI/CD

創建好項目后我們就可以利用git clone將代碼庫同步到本地開發服務器上面來,構建開發人員的workspace

準備Docker Registry和Kubernetes環境

2.準備一個私有的Docker Registry.因為我們需要將Build 好的代碼放進一個Docker的Images上面然后推送到一個私有的Registry上。Azure Container Registry無疑是一個非常好的選擇,因為等一下我們的代碼需要部署到Azure的Kubernetes群集里,Image所在的地方離部署的地方越近,部署速度當然也就越快了。而且Azure Container Registry還支持全球同步,如果你的代碼打算全球多站點發布的話,Azure Container Registry服務無疑是最好的選擇。創建Azure Docker Registry可以參考官方文檔:https://docs.microsoft.com/zh-cn/azure/container-registry/ 

3.準備Kubernetes群集,Azure上支持提供了AKS服務,讓我們可以快速搭建出來Kubernetes的群集環境,減少了運維人員管理群集的壓力,搭建方法參考官方文檔:https://docs.microsoft.com/zh-cn/azure/aks/kubernetes-walkthrough-portal 

  搭建的過程中注意幾個地方

1.準備好Service Principle服務主體APP

2.準備好linux ssh登錄的Key

安裝好群集后通過 Azure CLI 2.0命令:az aks install-cli 這樣我們就可以自動在你的linux上裝上Kubernetes的kubectl命令行工具了.

要管理Kubernetes的話,需要運行下面的命令,在本地生成K8S的管理配置信息

az aks get-credentials --resource-group=myResourceGroup --name=myK8sCluster

獲取到的配置內容會放在/home/<youraccount>/.kube/config文件里面,這文件里面的內容非常重要,等一下VSTS需要這個信息來跟K8S群集進行鏈接的。

我們可以通過kubectl get nodes命令看看群集的狀況

如何利用VSTS跟Kubernetes整合進行CI/CD

開始配置VSTS的自動化構建和自動化發布

我們再VSTS的項目站點里找到Build and Release的菜單項,點擊New的按鈕

如何利用VSTS跟Kubernetes整合進行CI/CD

選擇NodeJS with Gulp的模板

如何利用VSTS跟Kubernetes整合進行CI/CD

創建好后,我們先裁剪掉暫時不需要的Task,然后添加上Docker build Image和push Image的Task

如何利用VSTS跟Kubernetes整合進行CI/CD--->如何利用VSTS跟Kubernetes整合進行CI/CD

配置Build an image Task:

在這里我們可以將一開始準備好的Azure Container Registry環境用上了

如何利用VSTS跟Kubernetes整合進行CI/CD

配置Push an image Task,Image Name使用BuildId作為鏡像的Tag,這樣后面部署到Kubernetes的時候就可以指定這個Tag對Image進行更新了。

如何利用VSTS跟Kubernetes整合進行CI/CD

Build的定義不算太復雜,定義完之后我們就可以直接觸發一次Build來檢驗一下配置是否成功了。

下圖就是Build成功之后的日志,我圖中我們可以看到Docker push命令將image push到了我們之前建立的Azure注冊Repository里面了

如何利用VSTS跟Kubernetes整合進行CI/CD

自動化構建成功之后,我們可以做自動化的部署了,

創建一個新的發布定義

如何利用VSTS跟Kubernetes整合進行CI/CD

在Environment里點擊一下藍色字體部分,編輯部署任務

如何利用VSTS跟Kubernetes整合進行CI/CD

在配置部署任務時,選擇Deploy to Kubernetes的任務類型,并且在Manage這個藍色鏈接這里配置Kubernetes的鏈接信息。

在Kubernetes的命令里使用set命令,通過設置image的更新地址來通知Kubernetes更新部署版本。

命令的格式是:kubectl set image deployment/<deploymentname> <imagename>=<image url>

在VSTS里面,只需要argument里面把后面的部分填上就好

如何利用VSTS跟Kubernetes整合進行CI/CD

配置Kubernetes的 Service Endpoints信息:

如何利用VSTS跟Kubernetes整合進行CI/CD

配置好部署任務后,我們可以嘗試一下手動將前面成功的Build部署到Kubernetes環境中

如何利用VSTS跟Kubernetes整合進行CI/CD如何利用VSTS跟Kubernetes整合進行CI/CD

至此我們已經可以成功將一份代碼部署到了Kubernetes里面去了

如何利用VSTS跟Kubernetes整合進行CI/CD

部署成功后,可以通過kubectl get pods -w命令監控一下Kubernetes對容器進行更新替換的過程,從下圖中可以看到Kubernetes創建了一個新的pod,然后將舊版本的pod進行了Terminate.

如何利用VSTS跟Kubernetes整合進行CI/CD

如果我們需要將Release跟Build自動鏈接起來,可以通過編輯Release定義,選擇圖上的閃電按鈕,將Continuous deployment trigger的按鈕設置為Enabled即可。

如何利用VSTS跟Kubernetes整合進行CI/CD如何利用VSTS跟Kubernetes整合進行CI/CD

感謝各位的閱讀,以上就是“如何利用VSTS跟Kubernetes整合進行CI/CD”的內容了,經過本文的學習后,相信大家對如何利用VSTS跟Kubernetes整合進行CI/CD這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

穆棱市| 乌兰县| 博野县| 屏南县| 济阳县| 枞阳县| 平谷区| 油尖旺区| 辽阳市| 行唐县| 东乡族自治县| 灌云县| 九龙县| 宝坻区| 沂源县| 澳门| 松江区| 江川县| 庆安县| 新密市| 精河县| 右玉县| 嵊州市| 资阳市| 甘泉县| 加查县| 洪洞县| 金塔县| 北碚区| 兴化市| 临洮县| 济阳县| 江山市| 伽师县| 荣成市| 广灵县| 嘉义市| 安吉县| 墨竹工卡县| 岳普湖县| 山阳县|