您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何使用容器鏡像服務(wù)TCR輕松實(shí)現(xiàn)容器DevOps,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
當(dāng)你使用云廠商提供的容器服務(wù)部署業(yè)務(wù)服務(wù)后,是否對交付部署全鏈路的效率有更高的需求,例如實(shí)現(xiàn)基于容器的 DevOps 服務(wù),自動化地完成鏡像構(gòu)建以及集群內(nèi)容器的鏡像版本更新。騰訊云容器鏡像服務(wù) TCR 提供云原生應(yīng)用交付流水線功能,全鏈路可追蹤、可觀測、可自主配置,讓用戶可以輕松實(shí)現(xiàn)代碼提交變更后,自動觸發(fā)鏡像的構(gòu)建和推送,并將鏡像更新到容器服務(wù) TKE、彈性容器服務(wù) EKS 等平臺創(chuàng)建的集群中,完成最終的交付,為企業(yè)級用戶在騰訊云上提供一體化云原生 DevOps 解決方案。本文主要介紹如何使用容器鏡像服務(wù) TCR 輕松實(shí)現(xiàn)容器 DevOps。
容器鏡像服務(wù)(Tencent Container Registry,TCR)是騰訊云提供的安全獨(dú)享、高性能的容器鏡像托管分發(fā)服務(wù),支持 Docker 鏡像、Helm Chart 存儲分發(fā)及鏡像安全掃描,為企業(yè)級客戶提供了細(xì)顆粒度的訪問權(quán)限管理和網(wǎng)絡(luò)訪問控制。
DevOps 是 Development 和 Operations 的組合詞,代表著重視「軟件開發(fā)人員(Dev)」和「IT 運(yùn)維技術(shù)人員(Ops)」之間溝通合作的文化;旨在透過自動化「軟件交付」和「架構(gòu)變更」的流程,使得構(gòu)建、 測試、發(fā)布軟件的過程能夠更加地快捷、頻繁和可靠。TCR 與容器服務(wù) TKE、CODING DevOps 等產(chǎn)品無縫集成,在騰訊云上提供一體化云原生 DevOps 解決方案,容器 DevOps 的基本業(yè)務(wù)流程如圖所示。
準(zhǔn)備 TCR 企業(yè)版實(shí)例,創(chuàng)建鏡像倉庫。
前往實(shí)例列表頁面,新建企業(yè)版實(shí)例,關(guān)于如何創(chuàng)建可參考文檔創(chuàng)建企業(yè)版實(shí)例,并在生成的實(shí)例中創(chuàng)建一個鏡像倉庫。
準(zhǔn)備 TKE 標(biāo)準(zhǔn)集群,并部署容器應(yīng)用
前往 容器服務(wù)控制臺,新建 TKE 標(biāo)準(zhǔn)集群,可參考文檔 創(chuàng)建集群。
當(dāng)前容器服務(wù) TKE 已支持在控制臺內(nèi)選擇容器鏡像服務(wù) TCR 企業(yè)版鏡像創(chuàng)建工作負(fù)載。同時,TKE 標(biāo)準(zhǔn)集群可安裝 TCR 專屬插件,實(shí)現(xiàn)內(nèi)網(wǎng)及免密拉取 TCR 企業(yè)版內(nèi)鏡像,參考文檔 使用 TCR 企業(yè)版實(shí)例內(nèi)容器鏡像創(chuàng)建工作負(fù)載。
開通 CODING DevOps 服務(wù)。
支持用戶配置流水線,在代碼變更后,自動構(gòu)建鏡像,并觸發(fā)自動部署到容器平臺。
登錄容器鏡像服務(wù) TCR 控制臺,選擇左側(cè)導(dǎo)航欄中的【交付流水線】,在“交付流水線”頁面中,單擊【新建】。
在“基本信息”步驟中,配置以下參數(shù),然后單擊【下一步:鏡像配置】。
流水線名稱:設(shè)置交付流水線名稱。
流水線描述:為交付流水線添加描述信息,創(chuàng)建后可修改。
在“鏡像配置”步驟中,配置以下參數(shù),單擊【下一步:應(yīng)用部署】。
推送到指定分支觸發(fā):需指定分支。
推送新標(biāo)簽時觸發(fā)構(gòu)建:新建標(biāo)簽并推送時觸發(fā)。
推送到分支時觸發(fā)構(gòu)建:推送至任意分支時觸發(fā),無需指定分支。
符合分支或標(biāo)簽規(guī)則時構(gòu)建:需輸入正則表達(dá)式,例如 ^refs/heads/master$
,可匹配 master 分支進(jìn)行觸發(fā)。
直接部署任意版本:推送到鏡像倉庫的任意版本鏡像都會被部署。
僅部署指定名稱版本:需指定鏡像版本,多個版本可以使用逗號分隔,非指定版本不會部署。
僅部署指定規(guī)則版本:需輸入正則表達(dá)式。
鏡像倉庫:選擇交付流水線關(guān)聯(lián)的鏡像倉庫,將自動配置鏡像構(gòu)建及推送,用于托管應(yīng)用部署所需要的鏡像。
鏡像版本過濾
:支持對執(zhí)行交付流水線中鏡像的版本進(jìn)行限制,可以過濾掉不需要執(zhí)行部署的鏡像版本。
鏡像來源:支持平臺構(gòu)建鏡像和本地推送鏡像。平臺構(gòu)建鏡像允許用戶關(guān)聯(lián)不同代碼托管平臺的代碼倉庫,當(dāng)代碼變動時自動觸發(fā)交付流水線,完成自動構(gòu)建、推送鏡像以及應(yīng)用部署;本地推送鏡像支持用戶在手動推送鏡像時,也能觸發(fā)應(yīng)用部署。場景一中我們選擇平臺構(gòu)建鏡像。
代碼源、代碼倉庫:選擇用于構(gòu)建鏡像的代碼倉庫,流水線將拉取該代碼倉庫內(nèi)源代碼進(jìn)行編譯及構(gòu)建,首次選擇需要授權(quán)。目前已支持GitHub、公有GitLab、私有GitLab、碼云以及工蜂等代碼托管平臺。
觸發(fā)規(guī)則
:鏡像構(gòu)建被自動觸發(fā)的規(guī)則條件。目前支持以下四種場景:
Dockerfile 路徑:鏡像構(gòu)建執(zhí)行的操作基于代碼倉庫內(nèi)的 Dockerfile,需指定該 Dockerfile 文件的路徑。如不指定,默認(rèn)為代碼倉庫根目錄下名為 Dockerfile 的文件。
構(gòu)建目錄:鏡像構(gòu)建執(zhí)行的工作目錄,即上下文環(huán)境(context),默認(rèn)為代碼倉庫的根目錄。
版本規(guī)則:定義鏡像構(gòu)建生成的鏡像名稱,即鏡像版本(tag)。支持配置自定義前綴,并組合加入“分支/標(biāo)簽”,“更新時間”,“commit號” 三個環(huán)境變量。其中,更新時間為執(zhí)行 docker tag 指令時構(gòu)建服務(wù)的系統(tǒng)時間。
在“應(yīng)用部署”步驟中,配置以下參數(shù),單擊【確定】。
部署平臺:交付流水線同時支持容器服務(wù) TKE,彈性容器服務(wù) EKS 及邊緣容器服務(wù) Edge。本文以容器服務(wù) TKE 為例。
部署地域:目標(biāo)集群所在地域。選擇已創(chuàng)建的 TKE 標(biāo)準(zhǔn)集群所在地域。
部署集群:目標(biāo)集群。選擇已創(chuàng)建的 TKE 標(biāo)準(zhǔn)集群。
部署方式:當(dāng)前僅支持 “更新已有工作負(fù)載”。
命名空間:已部署應(yīng)用所在的命名空間。
工作負(fù)載:已部署應(yīng)用的關(guān)聯(lián)工作負(fù)載。
Pod容器:已部署應(yīng)用的工作負(fù)載內(nèi)的 Pod 容器。
完成以上配置后,可在“交付流水線” 列表頁查看新建的流水線。
完成以上配置后,即可在更新應(yīng)用代碼后,自動觸發(fā)鏡像構(gòu)建,推送及應(yīng)用更新。
更新源代碼 更新源代碼,并提交至遠(yuǎn)端代碼倉庫。
執(zhí)行流水線
源代碼推送完成后,如符合鏡像配置中鏡像構(gòu)建的觸發(fā)條件,將觸發(fā)流水線執(zhí)行??牲c(diǎn)擊流水線查看該流水線執(zhí)行記錄,并查看具體步驟進(jìn)度。
Checkout:檢出代碼。
Docker Build:基于鏡像構(gòu)建配置進(jìn)行鏡像構(gòu)建,并為生成的鏡像打上指定規(guī)則的Tag,如 v-{tag}-{date}-{commit}。
Docker Push:推送鏡像,自動推送至關(guān)聯(lián)鏡像倉庫內(nèi)。
Deploy To TKE:使用最新推送的鏡像更新關(guān)聯(lián)工作負(fù)載及Pod 內(nèi)同名鏡像。
查看應(yīng)用更新狀態(tài) 前往容器服務(wù) TKE 控制臺,進(jìn)入上述集群及工作負(fù)載詳情頁,并選擇修訂歷史,可查看應(yīng)用更新狀態(tài)。如下圖所示,v1版本是一開始手動部署的nginx鏡像,流水線執(zhí)行完成后更新為 v2 版本,使用的是自動構(gòu)建出來的新的鏡像。 可以直接訪問該應(yīng)用服務(wù),查看是否已更新。通過查看 Servce 暴露到公網(wǎng)的地址,查看結(jié)果,可以看到服務(wù)已經(jīng)更新。
在某些場景可能不需要使用 TCR 鏡像自動構(gòu)建能力,但又希望可以在推送鏡像后能夠自動部署到容器平臺。TCR 支持用戶配置本地推送鏡像后,通過觸發(fā)器的能力,自動觸發(fā)鏡像部署。
參考場景一配置新建一條交付流水線,與場景一的區(qū)別在“鏡像配置”步驟中,將”鏡像來源“選擇為”本地推送鏡像“。
完成配置后,即可在本地使用命令行指令推送鏡像,觸發(fā)自動部署。
本地推送鏡像
通過快捷指令我們可以登錄騰訊云容器鏡像服務(wù) Docker Registry 并向 Registry 中推送鏡像。例如這里推送一個 nginx 鏡像。
執(zhí)行流水線 本地推動鏡像完成后,如符合鏡像配置中鏡像構(gòu)建的觸發(fā)條件,將觸發(fā)流水線執(zhí)行,由于此時鏡像已經(jīng)準(zhǔn)備好,因此流水線只需要執(zhí)行自動部署。
查看應(yīng)用更新狀態(tài)
同場景一,我們可以前往容器服務(wù) TKE 控制臺,進(jìn)入上述集群及工作負(fù)載詳情頁,并選擇修訂歷史,可查看應(yīng)用更新狀態(tài),也可直接訪問該應(yīng)用服務(wù),查看是否已更新。
本文分兩個場景介紹了如何使用容器鏡像服務(wù) TCR 實(shí)現(xiàn)容器 DevOps。場景一是代碼變動后,自動觸發(fā)鏡像構(gòu)建以及應(yīng)用部署;場景二是本地推送鏡像后自動觸發(fā)應(yīng)用部署。想要快速上手使用容器鏡像服務(wù) TCR、容器服務(wù) TKE 實(shí)踐 CD 流程,本文是個很好的參考。
看完上述內(nèi)容,你們對如何使用容器鏡像服務(wù)TCR輕松實(shí)現(xiàn)容器DevOps有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。