您好,登錄后才能下訂單哦!
這篇“如何在TKE中實現DevOps”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“如何在TKE中實現DevOps”文章吧。
DevOps 理念被越來越多的企業采納,DevOps 是 Development 和 Operations 的組合詞,代表著重視「軟件開發人員(Dev)」和「IT 運維技術人員(Ops)」之間溝通合作的文化;旨在透過自動化「軟件交付」和「架構變更」的流程,使得構建、 測試、發布軟件的過程能夠更加地快捷、頻繁和可靠。在云原生時代,我們更需要 Devops 思維來實現敏捷開發, 本文將介紹和實踐專為云原生打造的 TKE 容器 DevOps 服務,實現從代碼提交時觸發鏡像的自動構建,再到鏡像構建成功時觸發自動部署流程將應用部署、更新到 TKE 集群中的一整套無縫銜接的 Devops 流水線。
TKE 容器 DevOps 是 容器服務 TKE、容器鏡像服務 TCR 和 CODING DevOps 三個服務緊密結合,面向容器業務場景,具備自動化代碼編譯、容器鏡像構建、鏡像推送及應用部署等功能,為客戶提供強大的一站式云原生 DevOps 服務。容器 DevOps 快速入門請參考 TKE 和 Coding 協同業務實現快速迭代 最佳實踐文檔。
TKE 容器 DevOps 服務貫穿了整個應用開發和部署流程的全生命周期管理,實現了從更新代碼到應用部署、更新的自動化,如下圖所示:
TKE 容器 Devops 功能提供了強大的云原生 Devops服務,下面將按照上述 TKE 容器 Devops 業務流程圖來實現從源碼更新到業務發布的整套自動化流程。
創建 TKE 測試集群
關于如何創建可參考文檔 部署容器服務TKE。
開通 容器鏡像服務 TCR 服務
已創建可訪問的 TCR 測試實例和生成測試實例訪問憑證。 TCR 需要開通企業標準版或高級版支持云原生交付工作流,詳情請參考 容器鏡像服務購買指南,目前 TCR 支持區域請參考 支持地域。
開通 CODING DevOps 服務
已創建和完善了 Coding Devops 團隊。如使用子賬號進行操作,請使用主賬號在 CODING DevOps 控制臺快速創建擁有權限的子用戶或參考 子用戶權限設置 提前為子賬號授予對應實例的操作權限。
在 TKE 控制臺左側功能菜單欄點擊【Devops】功能鏈接即可進入【容器 Devops】介紹界面,如下圖所示:
點擊 【立即使用】即可跳轉到所屬團隊的 Coding 主頁面使用相關 DevOps 功能。
在 Coding 團隊主頁面創建一個測試項目和測試代碼倉庫,關于 Coding 代碼托管介紹請參考 代碼托管介紹 。創建步驟如下:
**步驟 1:**在 Coding 團隊主頁面【 項目】中創建測試項目,如下圖所示:
**步驟 2:**點擊已創建的測試項目 “test-jokey” 進入項目主頁面,在【代碼倉庫】菜單中新建測試代碼倉庫,如下圖所示:
在測試項目 “test-jokey” 主頁面左側菜單【持續集成】的子菜單 【構建計劃】中創建一個構建計劃,構建計劃是持續集成的基本單元,可以通過選擇構建計劃模版快速創建一個構建計劃,詳情請參考文檔 快速開始持續集成。
**步驟 1:**選擇 “構建鏡像并推送到 TCR 企業版” 模版快速創建一個構件計劃,創建示例如下:
**步驟 2:**根據構建計劃模版選擇要檢出的代碼源和配置 TCR 訪問憑證相關環境變量, 右邊可以看到模版生成的 Jenkinsfile 預覽,如下圖:
提示:Coding devops 和 TCR 實例之間內網互通,鏡像 push 默認使用內網傳輸,無需另外配置。
使用構建模版生成的構建項目,也可以通過點擊構建項目的【設置】菜單再對構建詳情進行自定義配置,構建計劃配置頁面的功能說明如下:
【基礎信息】: 基礎配置頁面可選擇代碼源和節點池等基礎配置,節點池相關說明請參考文檔 構建節點。
【流程配置】:用來配置運行構建任務的環境,相關說明請參考 構建環境。
【觸發規則】:用來配置構建計劃的觸發規則,可支持通過多種方式來觸發構建計劃,相關說明請參考 觸發規則。
【變量與緩存】:環境變量與緩存配置,相關說明請參考 環境變量 和 緩存目錄 。
【通知提醒】:構建計劃完成時可向指定的 Coding 團隊成員發送通知提醒。
另外還可以在【項目配置 -> 開發者選項 -> WebHook】 中新建 WebHook 的方式將事件通知推送到企業微信等即時通信平臺,詳情請參考 WebHook 和 綁定企業微信群機器人,配置示例如下圖:
想了解更多關于 Coding 持續集成的詳細介紹請參考 持續集成介紹。
在測試項目 “test-jokey” 主頁面左側菜單 【持續集成】的子菜單 【Kubernetes】中根據步驟引導創建持續部署流水線,如下圖所示:
請參考 云賬號 文檔,添加配置部署云上資源的訪問云賬號信息,可以選擇【騰訊云 TKE】或者【Kubernetes】 類型的云賬號,輸入相關認證配置添加云賬號,這里選擇了【Kubernetes】方式綁定。
關于 Coding 應用與項目相關說明請參考文檔 應用與項目和 流程配置 ,這里僅簡單說明下在配置應用和流程過程中的關鍵配置項。
在創建應用時,需要勾選【 Kubernetes(TKE) 部署】方式:
在新建的應用中創建部署流程時,選擇【Kubernetes】流程模版,再根據實際需要選擇模版下的流程,這里選擇了下圖中第二個流程,部署 Deployment 和 Service 到 Kubernets 集群的流程:
在【部署流程】中配置部署流程時,【啟動所需制品】選項關聯之前的持續集成環節生成的 TCR 倉庫鏡像制品:
使用【自動觸發器】綁定 TCR 倉庫鏡像制品,這里是重點,作用是當有新版本鏡像構建成功時,將自動觸發部署流程,配置方式如下:
接下來就是配置【部署 Deployment】和【部署 Service】部署階段,兩個階段的配置方式類似,選擇之前添加的有部署權限的云賬號和填寫自定義的 Manifest,即自定義部署 YAML 模版。
自定義 Deployment YAML 示例如下:
提示:關于持續部署更新策略
本示例僅使用了一個簡單的 Deployment YAML 部署到 Kubernetes 集群,使用了默認的滾動部署(RollingUpdate)更新策略。實際上,可以借助 Nginx-ingress / Istio 等工具配置更高級的更新策略,如藍綠發布、金絲雀、A/B 測試等,具體使用方法請參閱 藍綠發布 、 Nginx-ingress 實現自動化灰度發布、 持續部署 + TKE Mesh 灰度發布實踐。
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: # 私有倉庫訪問憑證配置 - name: tcr-secret # 訪問憑證 secret
其中, 對于 spec.template.spec.containers.*.image
的鏡像地址字段 Coding 會有一個轉換匹配規則, 關于轉換匹配規則的說明請參考文檔 在 manifest 中綁定制品。
關于 TKE 拉取 TCR 私有倉庫鏡像有兩種方式:
在 TCR 支持區域內可配置 TKE 免密拉取 TCR 容器鏡像,關于 TCR 支持區域請參考 支持地域,關于如何配置可參考文檔 TKE 集群使用 TCR 插件內網免密拉取容器鏡像。
手動配置 TKE 拉取 TCR 私有倉庫鏡像的訪問憑證,配置方式可參考 TKE 配置私有倉庫訪問示例 。
注意:上面的 Deployment YAML 示例使用了 “手動配置 TKE 拉取 TCR 私有倉庫鏡像的訪問憑證” 的方式。
自定義的 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
另外可以為部署流程的每個階段配置自定義事件通知(可選),以便方便快捷的獲知部署流程執行情況,這里配置了企業微信通知方式,獲取企業微信 Webook 機器人鏈接的方法可參考 創建企業微信群機器人。
關聯項目和應用配置請參考文檔 項目和應用關聯。
提單發布使用和配置請參考文檔 新建發布單。
想了解更多關于 Coding 持續部署的詳細介紹請參考 持續部署介紹。
在項目代碼文件中修改添加如下所示的 v2 API 代碼后提交 master 分支:
由于【持續集成】中的構建計劃使用了 “代碼更新時自動執行” 的事件觸發配置, 了解相關觸發配置請參考 觸發規則。當提交修改的代碼時,會自動觸發關聯的構建計劃執行:
如果為持續集成配置了企業微信 Webhook 通知,企業微信也會收到相應的即時通知消息,如下圖所示:
當構建計劃生成 Docker 鏡像制品時,又會自動觸發關聯的【持續部署】流程,將新的鏡像應用更新到 TKE 集群中:
如果部署流程有配置企業微信通知的話,當部署流程任務完成時,會收到對應的企業微信部署完成通知,如下圖所示:
此時,可以在 TKE 中看到已經成功更新了工作負載:
以上就是關于“如何在TKE中實現DevOps”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。