溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在TKE中實(shí)現(xiàn)DevOps

發(fā)布時(shí)間:2022-01-11 17:48:10 來(lái)源:億速云 閱讀:161 作者:iii 欄目:云計(jì)算

這篇“如何在TKE中實(shí)現(xiàn)DevOps”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“如何在TKE中實(shí)現(xiàn)DevOps”文章吧。

概述

DevOps 理念被越來(lái)越多的企業(yè)采納,DevOps 是 Development 和 Operations 的組合詞,代表著重視「軟件開(kāi)發(fā)人員(Dev)」和「IT 運(yùn)維技術(shù)人員(Ops)」之間溝通合作的文化;旨在透過(guò)自動(dòng)化「軟件交付」和「架構(gòu)變更」的流程,使得構(gòu)建、 測(cè)試、發(fā)布軟件的過(guò)程能夠更加地快捷、頻繁和可靠。在云原生時(shí)代,我們更需要 Devops 思維來(lái)實(shí)現(xiàn)敏捷開(kāi)發(fā), 本文將介紹和實(shí)踐專(zhuān)為云原生打造的 TKE 容器 DevOps 服務(wù),實(shí)現(xiàn)從代碼提交時(shí)觸發(fā)鏡像的自動(dòng)構(gòu)建,再到鏡像構(gòu)建成功時(shí)觸發(fā)自動(dòng)部署流程將應(yīng)用部署、更新到 TKE 集群中的一整套無(wú)縫銜接的 Devops 流水線(xiàn)。

TKE 容器 DevOps 簡(jiǎn)介

TKE 容器 DevOps 是 容器服務(wù) TKE、容器鏡像服務(wù) TCR 和 CODING DevOps 三個(gè)服務(wù)緊密結(jié)合,面向容器業(yè)務(wù)場(chǎng)景,具備自動(dòng)化代碼編譯、容器鏡像構(gòu)建、鏡像推送及應(yīng)用部署等功能,為客戶(hù)提供強(qiáng)大的一站式云原生 DevOps 服務(wù)。容器 DevOps 快速入門(mén)請(qǐng)參考 TKE 和 Coding 協(xié)同業(yè)務(wù)實(shí)現(xiàn)快速迭代 最佳實(shí)踐文檔。

TKE 容器 DevOps 業(yè)務(wù)流程

TKE 容器 DevOps 服務(wù)貫穿了整個(gè)應(yīng)用開(kāi)發(fā)和部署流程的全生命周期管理,實(shí)現(xiàn)了從更新代碼到應(yīng)用部署、更新的自動(dòng)化,如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

如何使用 TKE 容器 DevOps

操作場(chǎng)景

TKE 容器 Devops 功能提供了強(qiáng)大的云原生 Devops服務(wù),下面將按照上述 TKE 容器 Devops 業(yè)務(wù)流程圖來(lái)實(shí)現(xiàn)從源碼更新到業(yè)務(wù)發(fā)布的整套自動(dòng)化流程。

前提條件

  • 創(chuàng)建 TKE 測(cè)試集群

    關(guān)于如何創(chuàng)建可參考文檔 部署容器服務(wù)TKE。

  • 開(kāi)通 容器鏡像服務(wù) TCR 服務(wù)

    已創(chuàng)建可訪(fǎng)問(wèn)的 TCR 測(cè)試實(shí)例和生成測(cè)試實(shí)例訪(fǎng)問(wèn)憑證。 TCR 需要開(kāi)通企業(yè)標(biāo)準(zhǔn)版或高級(jí)版支持云原生交付工作流,詳情請(qǐng)參考 容器鏡像服務(wù)購(gòu)買(mǎi)指南,目前 TCR 支持區(qū)域請(qǐng)參考 支持地域。

  • 開(kāi)通 CODING DevOps 服務(wù)

    已創(chuàng)建和完善了 Coding Devops 團(tuán)隊(duì)。如使用子賬號(hào)進(jìn)行操作,請(qǐng)使用主賬號(hào)在 CODING DevOps 控制臺(tái)快速創(chuàng)建擁有權(quán)限的子用戶(hù)或參考 子用戶(hù)權(quán)限設(shè)置 提前為子賬號(hào)授予對(duì)應(yīng)實(shí)例的操作權(quán)限。

操作步驟

TKE 容器 Devops 訪(fǎng)問(wèn)入口

在 TKE 控制臺(tái)左側(cè)功能菜單欄點(diǎn)擊【Devops】功能鏈接即可進(jìn)入【容器 Devops】介紹界面,如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

點(diǎn)擊 【立即使用】即可跳轉(zhuǎn)到所屬團(tuán)隊(duì)的 Coding 主頁(yè)面使用相關(guān) DevOps 功能。

配置代碼托管

在 Coding 團(tuán)隊(duì)主頁(yè)面創(chuàng)建一個(gè)測(cè)試項(xiàng)目和測(cè)試代碼倉(cāng)庫(kù),關(guān)于 Coding 代碼托管介紹請(qǐng)參考 代碼托管介紹 。創(chuàng)建步驟如下:

**步驟 1:**在 Coding 團(tuán)隊(duì)主頁(yè)面【 項(xiàng)目】中創(chuàng)建測(cè)試項(xiàng)目,如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

**步驟 2:**點(diǎn)擊已創(chuàng)建的測(cè)試項(xiàng)目 “test-jokey” 進(jìn)入項(xiàng)目主頁(yè)面,在【代碼倉(cāng)庫(kù)】菜單中新建測(cè)試代碼倉(cāng)庫(kù),如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

創(chuàng)建構(gòu)建計(jì)劃

在測(cè)試項(xiàng)目 “test-jokey” 主頁(yè)面左側(cè)菜單【持續(xù)集成】的子菜單 【構(gòu)建計(jì)劃】中創(chuàng)建一個(gè)構(gòu)建計(jì)劃,構(gòu)建計(jì)劃是持續(xù)集成的基本單元,可以通過(guò)選擇構(gòu)建計(jì)劃模版快速創(chuàng)建一個(gè)構(gòu)建計(jì)劃,詳情請(qǐng)參考文檔 快速開(kāi)始持續(xù)集成。

**步驟 1:**選擇 “構(gòu)建鏡像并推送到 TCR 企業(yè)版” 模版快速創(chuàng)建一個(gè)構(gòu)件計(jì)劃,創(chuàng)建示例如下:

如何在TKE中實(shí)現(xiàn)DevOps

**步驟 2:**根據(jù)構(gòu)建計(jì)劃模版選擇要檢出的代碼源和配置 TCR 訪(fǎng)問(wèn)憑證相關(guān)環(huán)境變量, 右邊可以看到模版生成的 Jenkinsfile 預(yù)覽,如下圖:

提示:Coding devops 和 TCR 實(shí)例之間內(nèi)網(wǎng)互通,鏡像 push 默認(rèn)使用內(nèi)網(wǎng)傳輸,無(wú)需另外配置。

如何在TKE中實(shí)現(xiàn)DevOps

使用構(gòu)建模版生成的構(gòu)建項(xiàng)目,也可以通過(guò)點(diǎn)擊構(gòu)建項(xiàng)目的【設(shè)置】菜單再對(duì)構(gòu)建詳情進(jìn)行自定義配置,構(gòu)建計(jì)劃配置頁(yè)面的功能說(shuō)明如下:

如何在TKE中實(shí)現(xiàn)DevOps

【基礎(chǔ)信息】: 基礎(chǔ)配置頁(yè)面可選擇代碼源和節(jié)點(diǎn)池等基礎(chǔ)配置,節(jié)點(diǎn)池相關(guān)說(shuō)明請(qǐng)參考文檔 構(gòu)建節(jié)點(diǎn)。

【流程配置】:用來(lái)配置運(yùn)行構(gòu)建任務(wù)的環(huán)境,相關(guān)說(shuō)明請(qǐng)參考 構(gòu)建環(huán)境。

【觸發(fā)規(guī)則】:用來(lái)配置構(gòu)建計(jì)劃的觸發(fā)規(guī)則,可支持通過(guò)多種方式來(lái)觸發(fā)構(gòu)建計(jì)劃,相關(guān)說(shuō)明請(qǐng)參考 觸發(fā)規(guī)則。

【變量與緩存】:環(huán)境變量與緩存配置,相關(guān)說(shuō)明請(qǐng)參考 環(huán)境變量 和 緩存目錄 。

【通知提醒】:構(gòu)建計(jì)劃完成時(shí)可向指定的 Coding 團(tuán)隊(duì)成員發(fā)送通知提醒。

另外還可以在【項(xiàng)目配置 -> 開(kāi)發(fā)者選項(xiàng) -> WebHook】 中新建 WebHook 的方式將事件通知推送到企業(yè)微信等即時(shí)通信平臺(tái),詳情請(qǐng)參考 WebHook 和 綁定企業(yè)微信群機(jī)器人,配置示例如下圖:

如何在TKE中實(shí)現(xiàn)DevOps

想了解更多關(guān)于 Coding 持續(xù)集成的詳細(xì)介紹請(qǐng)參考 持續(xù)集成介紹。

創(chuàng)建持續(xù)部署

在測(cè)試項(xiàng)目 “test-jokey” 主頁(yè)面左側(cè)菜單 【持續(xù)集成】的子菜單 【Kubernetes】中根據(jù)步驟引導(dǎo)創(chuàng)建持續(xù)部署流水線(xiàn),如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

配置云賬號(hào)

請(qǐng)參考 云賬號(hào) 文檔,添加配置部署云上資源的訪(fǎng)問(wèn)云賬號(hào)信息,可以選擇【騰訊云 TKE】或者【Kubernetes】 類(lèi)型的云賬號(hào),輸入相關(guān)認(rèn)證配置添加云賬號(hào),這里選擇了【Kubernetes】方式綁定。

如何在TKE中實(shí)現(xiàn)DevOps

配置應(yīng)用和流程

關(guān)于 Coding 應(yīng)用與項(xiàng)目相關(guān)說(shuō)明請(qǐng)參考文檔 應(yīng)用與項(xiàng)目和 流程配置 ,這里僅簡(jiǎn)單說(shuō)明下在配置應(yīng)用和流程過(guò)程中的關(guān)鍵配置項(xiàng)。

在創(chuàng)建應(yīng)用時(shí),需要勾選【 Kubernetes(TKE) 部署】方式:

如何在TKE中實(shí)現(xiàn)DevOps

在新建的應(yīng)用中創(chuàng)建部署流程時(shí),選擇【Kubernetes】流程模版,再根據(jù)實(shí)際需要選擇模版下的流程,這里選擇了下圖中第二個(gè)流程,部署 Deployment 和 Service 到 Kubernets 集群的流程:

如何在TKE中實(shí)現(xiàn)DevOps

在【部署流程】中配置部署流程時(shí),【啟動(dòng)所需制品】選項(xiàng)關(guān)聯(lián)之前的持續(xù)集成環(huán)節(jié)生成的 TCR 倉(cāng)庫(kù)鏡像制品:

如何在TKE中實(shí)現(xiàn)DevOps

使用【自動(dòng)觸發(fā)器】綁定 TCR 倉(cāng)庫(kù)鏡像制品,這里是重點(diǎn),作用是當(dāng)有新版本鏡像構(gòu)建成功時(shí),將自動(dòng)觸發(fā)部署流程,配置方式如下:

如何在TKE中實(shí)現(xiàn)DevOps

接下來(lái)就是配置【部署 Deployment】和【部署 Service】部署階段,兩個(gè)階段的配置方式類(lèi)似,選擇之前添加的有部署權(quán)限的云賬號(hào)和填寫(xiě)自定義的 Manifest,即自定義部署 YAML 模版。

如何在TKE中實(shí)現(xiàn)DevOps

自定義 Deployment YAML 示例如下:

提示:關(guān)于持續(xù)部署更新策略

本示例僅使用了一個(gè)簡(jiǎn)單的 Deployment YAML 部署到 Kubernetes 集群,使用了默認(rèn)的滾動(dòng)部署(RollingUpdate)更新策略。實(shí)際上,可以借助 Nginx-ingress / Istio 等工具配置更高級(jí)的更新策略,如藍(lán)綠發(fā)布、金絲雀、A/B 測(cè)試等,具體使用方法請(qǐng)參閱 藍(lán)綠發(fā)布 、 Nginx-ingress 實(shí)現(xiàn)自動(dòng)化灰度發(fā)布、 持續(xù)部署 + TKE Mesh 灰度發(fā)布實(shí)踐。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: devops-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: devops-app
  template:
    metadata:
      labels:
        app: devops-app
    spec:
      containers:
        - image: xxx-test.tencentcloudcr.com/xxx-test/jokey-test  # 示例鏡像地址
          name: devops-app
          ports:
            - containerPort: 5000
      imagePullSecrets:  # 私有倉(cāng)庫(kù)訪(fǎng)問(wèn)憑證配置 
        - name: tcr-secret # 訪(fǎng)問(wèn)憑證 secret

其中, 對(duì)于 spec.template.spec.containers.*.image 的鏡像地址字段 Coding 會(huì)有一個(gè)轉(zhuǎn)換匹配規(guī)則, 關(guān)于轉(zhuǎn)換匹配規(guī)則的說(shuō)明請(qǐng)參考文檔 在 manifest 中綁定制品。

關(guān)于 TKE 拉取 TCR 私有倉(cāng)庫(kù)鏡像有兩種方式:

  • 在 TCR 支持區(qū)域內(nèi)可配置 TKE 免密拉取 TCR 容器鏡像,關(guān)于 TCR 支持區(qū)域請(qǐng)參考 支持地域,關(guān)于如何配置可參考文檔 TKE 集群使用 TCR 插件內(nèi)網(wǎng)免密拉取容器鏡像。

  • 手動(dòng)配置 TKE 拉取 TCR 私有倉(cāng)庫(kù)鏡像的訪(fǎng)問(wèn)憑證,配置方式可參考 TKE 配置私有倉(cāng)庫(kù)訪(fǎng)問(wèn)示例 。

注意:上面的 Deployment YAML 示例使用了 “手動(dòng)配置 TKE 拉取 TCR 私有倉(cāng)庫(kù)鏡像的訪(fǎng)問(wèn)憑證” 的方式。

自定義的 Service Manifest YAML 示例:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: devops-svc
  name: devops-svc
spec:
  ports:
    - port: 5000
      protocol: TCP
  selector:
    app: devops-app

另外可以為部署流程的每個(gè)階段配置自定義事件通知(可選),以便方便快捷的獲知部署流程執(zhí)行情況,這里配置了企業(yè)微信通知方式,獲取企業(yè)微信 Webook 機(jī)器人鏈接的方法可參考 創(chuàng)建企業(yè)微信群機(jī)器人。

如何在TKE中實(shí)現(xiàn)DevOps

關(guān)聯(lián)項(xiàng)目和應(yīng)用

關(guān)聯(lián)項(xiàng)目和應(yīng)用配置請(qǐng)參考文檔 項(xiàng)目和應(yīng)用關(guān)聯(lián)。

提單發(fā)布

提單發(fā)布使用和配置請(qǐng)參考文檔 新建發(fā)布單。

想了解更多關(guān)于 Coding 持續(xù)部署的詳細(xì)介紹請(qǐng)參考 持續(xù)部署介紹。

測(cè)試驗(yàn)證

在項(xiàng)目代碼文件中修改添加如下所示的 v2 API 代碼后提交 master 分支:

如何在TKE中實(shí)現(xiàn)DevOps

由于【持續(xù)集成】中的構(gòu)建計(jì)劃使用了 “代碼更新時(shí)自動(dòng)執(zhí)行” 的事件觸發(fā)配置, 了解相關(guān)觸發(fā)配置請(qǐng)參考 觸發(fā)規(guī)則。當(dāng)提交修改的代碼時(shí),會(huì)自動(dòng)觸發(fā)關(guān)聯(lián)的構(gòu)建計(jì)劃執(zhí)行:

如何在TKE中實(shí)現(xiàn)DevOps

如果為持續(xù)集成配置了企業(yè)微信 Webhook 通知,企業(yè)微信也會(huì)收到相應(yīng)的即時(shí)通知消息,如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

當(dāng)構(gòu)建計(jì)劃生成 Docker 鏡像制品時(shí),又會(huì)自動(dòng)觸發(fā)關(guān)聯(lián)的【持續(xù)部署】流程,將新的鏡像應(yīng)用更新到 TKE 集群中:

如何在TKE中實(shí)現(xiàn)DevOps

如果部署流程有配置企業(yè)微信通知的話(huà),當(dāng)部署流程任務(wù)完成時(shí),會(huì)收到對(duì)應(yīng)的企業(yè)微信部署完成通知,如下圖所示:

如何在TKE中實(shí)現(xiàn)DevOps

此時(shí),可以在 TKE 中看到已經(jīng)成功更新了工作負(fù)載:

如何在TKE中實(shí)現(xiàn)DevOps

以上就是關(guān)于“如何在TKE中實(shí)現(xiàn)DevOps”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI