999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于K3s構建面向云原生應用的容器平臺設計與實踐

2021-01-14 00:45:42劉忠
現代信息科技 2021年12期

摘 ?要:視頻分析系統隨著檢測類型、檢測視頻路數的不斷增加,既有系統后臺架構的弊端日漸凸顯,主要體現在高可用、部署、自動化運維、橫向自動擴縮容四個方面。為了解決這四個方面問題,提出了基于K3s的云原生應用容器平臺的架構設計。經試用實踐證明,該平臺架構既保證了視頻分析系統的高可用性,又有效地提高了部署效率,在基本實現了自動化運維的同時,也具有了橫向擴縮容功能。

關鍵詞:K3s;容器;自動化運維

中圖分類號:TP393 ? ?文獻標識碼:A 文章編號:2096-4706(2021)12-0022-04

Abstract: With the continuous increase of detection types and the number of detection video channels, the disadvantages of the background architecture of the existing video analysis system are becoming increasingly prominent, which are mainly reflected in four aspects: high availability, deployment, automatic operation and maintenance and horizontal automatic expansion and contraction. In order to solve these four problems, the architecture design of cloud native application container platform based on K3s is proposed. The trial practice shows that the platform architecture not only ensures the high availability of the video analysis system, but also effectively improves the deployment efficiency. It not only basically realizes automatic operation and maintenance, but also has the function of horizontal expansion and contraction.

Keywords: K3s; container; automatic operation and maintenance

0 ?引 ?言

隨著高速鐵路的快速發展,為了進一步提高車站、站臺以及沿線的安全,對視頻分析系統(以下簡稱分析系統)提出了更高的要求。在視頻檢測量不斷增多的同時,多樣化的檢測需求也在不斷地提出,而分析系統通過不斷地增加視頻檢測服務來滿足需求。

不斷增多的視頻檢測服務讓分析系統問題凸顯:

(1)由于檢測服務多,有些服務間彼此依賴,某一個服務的異常都可能導致某一類檢測服務的不可用。

(2)以人工為主的部署,可維護性差。

(3)以人工為主的運維錯誤率較高,導致穩定性差。

(4)在檢測需求波動大時,無法做到橫向自動擴縮容。因此,只有探索提高平臺的高可用、服務的易部署、運維的自動化、橫向的自動擴縮容的解決方案,才能解決目前分析系統所遇到的瓶頸問題。

容器技術+容器編排調度工具是國內外現階段平臺建設領域的主流。本文根據分析系統自身業務的需求和特點,結合K3S等開源項目搭建私有的云原生應用容器平臺(以下簡稱容器云),并將原有系統的服務拆分改造并容器化后遷移到容器云上,以達到分析系統的高可用、易部署、自動化運維、橫向自動擴縮容的目的。

1 ?開源項目概述

1.1 ?Docker

Docker是一個開源的應用容器引擎,讓開發者可以打包應用以及依賴到一個可移植的容器中,然后發布到任何流行的Linux設備或者Windows設備,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何接口[1]。結合Dockers鏡像私庫,可以方便地管理鏡像以及版本,達到了一次打包隨處部署的可能。同時,將應用部署到容器使其具有了可移植性,成為一種必然的趨勢。因此,可以將Docker作為構建容器云的基礎引擎。

1.2 ?Nvidia-device-plugin與Nvidia-docker

Nvidia-device-plugin是用于K3s的NVIDIA設備插件。通過將此插件部署為一個DaemonSet。可以實現:

(1)在集群的每個節點上公開GPU的數量。

(2)跟蹤GPU的運行狀況。

(3)在K8s集群中運行支持GPU的容器。

Nvidia-docker是NVIDIA容器工具包,允許用戶構建和運行GPU加速的Docker容器,該工具包包括一個容器運行時庫和實用程序,用于自動配置容器以利用NVIDIA GPU。目前分析系統中使用的正是NVIDIA的GPU設備,所以需要在配備了GPU的主機上部署以上兩個插件,使Docker支持GPU的應用。

1.3 ?K3s

對于大型企業而言,隨著系統規模的不斷擴大,應用服務的數量和節點主機的數量都在逐漸增加,單純靠Docker已無法滿足系統運維的需求[2]。K3s是Rancher開源的一個輕量級的Kubernetes[3](以下簡稱K8s)發行版,它針對邊緣計算、物聯網等場景進行了高度優化,最大程度減輕了外部依賴性。K3s保留了K8s的:

(1)集群管理。

(2)應用健康檢測與自動修復能力。

(3)容器集群的自動化部署。

(4)支持服務的發現調度。

(5)彈性伸縮等特性[4]。

由于K8s背靠Google,且有眾多的成功案例。而K3s來源于K8s,因此基于K3s構建容器云是一個不錯的選擇。

1.4 ?Prometheus

Prometheus是一個系統監控和告警的開源項目,2016年加入CNCF(Cloud Native Computing Foundation),成為僅次于K8s之后的第二個托管項目。Prometheus的主要優勢:

(1)由指標名和鍵/值對標簽標識的時間序列數據組成的多維數據模型。

(2)強大的查詢語言PromQL。

(3)不依賴分布式存儲,單個服務節點具有自治能力。

(4)HTTP協議的數據服務接口。

(5)支持多種類型的圖表和儀表盤[5]。

目前已被廣泛地用于K8s集群的監控系統中。因此,選擇Prometheus作為容器云的基礎監控及告警的工具。

1.5 ?Docker-Registry

Registry是一個無狀態、高度可擴展的服務端應用程序,用于存儲和分發Docker鏡像。Registry是開源的[6]。此項目是Docker官方提供給用戶構建私有本地鏡像倉庫的工具。因此,作為容器云的私有鏡像倉庫工具。

2 ?容器云的平臺設計

2.1 ?總統設計

容器云既可以部署在物理主機上,也可以部署在云主機上,總體架構如圖1所示。

資源層屬于設備層,可以是物理主機設備,也可以是云主機設備,主要是為平臺層提供存儲和部署能支撐容器的操作系統。本次平臺設計與實踐是以物理主機為主,用于檢測服務的主機設備還需要配備NVIDIA的GPU硬件。

平臺層包括容器云的核心組件,如:集群監控Prometheus、運行鏡像的容器引擎Docker、支持GPU設備的容器插件、統一編排與調度的K3s、鏡像私庫Docker-Registry、高可用的分布式存儲MinIO等。

應用層是針對平臺層進行對集群管理、應用管理、部署管理、鏡像管理以及監控管理等的一些平臺類的管理軟件。

2.2 ?系統總體功能設計

容器云,主要是對分析系統的可視化部署、自動化運維、服務高可用、橫向自動擴縮容四方面的支持。自動化運維包括:平臺監控、故障自動修復等,為分析系統的高可用運行提供保障。

2.2.1 ?可視化部署

容器云對部署提供可視化界面,簡化了通過編寫YAML或JSON文件等方式來部署的煩瑣操作,保證了部署的容器具有統一規范的命名、labels等,便于后期的運維管理;通過可視化界面可以很方便地對所部署的容器選擇所依賴的GPU廠商,并將此容器部署到配備了所依賴廠商GPU的節點上,避免了由于部署錯誤而導致容器不可用的問題。可視化部署界面如圖2所示。

2.2.2 ?自動化運維

容器云提供對平臺的監控、故障的自修復等功能,為運維人員提供高效便捷的自動化運維工具:

(1)平臺監控。容器云監控工具采用開源項目Prometheus。提供的監控項主要有:物理主機的狀態、平臺的運行狀態、應用的狀態、服務負載等方面的監控指標。同時以圖表及儀表盤的方式進行展示。對異常告警可以通過郵件、微信等通信方式推送到指定的運維人員,既降低了人工巡檢的成本,又縮短了故障發現的周期。集群主機節點及監控如圖3所示。

(2)故障自動修復。當K3s的健康檢查機制發現某個節點出現問題,它會自動將該節點上的資源轉移到其他節點上并完成自動恢復;當檢測發現某個容器出現問題時,會重啟容器。私有倉庫的搭建,為分析系統的服務出現異常時進行自動修復提供了支持,為新版本部署失敗后回滾到其他歷史版本提供了支持,為應用服務的不間斷運行提供了可能。

2.2.3 ?服務高可用

分析系統的服務高可用通過K3s的副本及探針等機制來實現。

2.2.4 ?橫向自動擴縮容

K3s根據容器預定義的負載指標(包括:CPU、GPU、內存、磁盤等)的使用情況來確定是否進行擴容或縮容。在分析系統中,主要以GPU的監控指標來確定擴縮容的情況。

2.3 ?容器云的高可用設計

分析系統在面向生產環境的實踐中,高可用部署是無法避免的問題。在這種情況下,通過容器云的高可用,來避免所造成的影響,或者將影響降到最低。

2.3.1 ?K3s的高可用部署

雖然單節點K3s集群可以滿足各種用例,但對于Kubernetes Control-plane的正常運行至關重要的環境,可以在高可用配置中運行K3s[7]。這種模式下,必須有奇數的服務器節點,建議從三個節點開始。K3s高可用架構示意圖如圖4所示。

2.3.2 ?存儲的可靠性

容器云根據分析系統對存儲的安全性要求,對視頻檢測結果的圖片、視頻片段等文件都存儲到統一的分布式對象存儲MinIO中;對用戶數據則存儲到采用主從方式部署的高可用集群數據庫中。在K3s集群中采用ETCD作為數據存儲的媒介。

2.3.3 ?分析系統的高可用

分析系統的各類服務都以容器的形式部署到K3s中,K3s通過副本的冗余來提供服務的高可用。首先打包服務為鏡像并上傳到鏡像私庫,然后在容器云的可視化部署界面,根據業務的實際運行情況,以Deployment、StatefulSets或DaemonSets中的任一種方式部署服務,通過配置合理的副本數和探針保證服務的高可用。當主機節點出現故障或服務本身的BUG導致不可用時,K3s就會自動在其他主機上重新部署服務或重啟服務,來保證與部署配置的一致性。

2.3.4 ?監控的多樣化與自動告警

容器云分別從主機節點、容器云、容器三個方面對容器云的健康狀況進行監控。

在所有的主機節點上都部署了Prometheus的客戶端組件node-exporter(配備了NVIDIA GPU的主機需要部署dcgm-exporter[6],其他廠商的GPU需要根據廠商提供的插件安裝),實時采集宿主機的硬件、操作系統以及所部署的容器的關鍵指標并上報。一旦出現告警,就會觸發Alert manager組件,并根據平臺配置進行告警。

對于容器,利用K3s的探針機制,定期檢測健康狀態,當檢測到異常時,自動根據配置策略對容器進行下一步的操作,同時發送告警信息。

以上三個方面的監控都可以通過平臺配置,及時地通過即時通信軟件告知運維人員,以便及時排查問題。

2.4 ?技術要點分析

2.4.1 ?Docker支持GPU

K3s支持對節點上的GPU進行管理。但是需要根據各GPU廠商的要求部署GPU容器插件。例如NVIDIA的GPU容器插件要求:

(1)必須預先安裝了NVIDIA驅動。

(2)必須預先安裝了Nvidia-Docker2.0。

(3)Docker的默認運行時必須設置為Nvidia-Container-Runtime,而不是RunC。

(4)NVIDIA驅動版本~=384.81[8]。

2.4.2 ?如何將容器部署到指定主機節點

要將容器部署到指定的主機節點,需要進行兩方面的設置。首先對加入容器云集群并配備了GPU的主機增加自定義labels:hardware-type(例如:hardware-type=NVIDIA GPU);然后分析系統檢測服務部署時需要指定nodeSelector的值,具體內容為:spec.nodeSelector.hardware-type=NVIDIAGPU或spec.template.spec.nodeSelector.hardware-type=NVIDIAGPU。按以上內容配置后,就能將檢測服務部署到配備有NVIDIA GPU的主機節點上了。

2.4.3 ?橫向自動擴縮容

K3s提供了Pod水平自動伸縮(Horizontal Pod Autoscaler, HPA),根據資源利用率或自定義的指標自動調整副本的數量,實現部署的自動擴容與縮容。讓部署的規模接近于實際服務的負載。

2.4.4 ?服務的高可用

K3s提供了ReplicaSet(RS)/Replication Controller(RC)來保證部署的服務是多副本的;而提供的Probe(探針)是對容器執行的定期診斷,每次診斷都會獲得三種結果(成功、失敗、未知)之一,針對運行中的容器,可以運行三種探針的一種或多種:

(1)livenessProbe,存活態探針,探測容器是否正常運行,如果失敗,則殺死容器,并將根據其重啟策略決定未來。

(2)readinessProbe,就緒態探針,探測容器是否準備好為請求提供服務,如果失敗,節點控制器從與容器組匹配的所有服務的節點列表中刪除該容器組的IP地址。

(3)startupProbe,啟動探針,探測容器中的應用是否已經啟動,如果失敗,那么其他探針都將被禁止。

3 ?容器云試用成效

在搭建完成的容器云上遷移并測試視頻分析系統的各個模塊后,得到以下試用效果:

(1)具備了高可用性:容器云的高可用架構設計,通過冗余和故障的自動修復保證了分析系統各類服務的高可用性。

(2)提高了部署效率:在容器云的可視化部署界面只需要選擇鏡像、設置副本、需要GPU的選擇相應的GPU廠商后,就可以部署一個應用,相比之前依靠手動或Shell腳本的部署,既降低了難度又提高了成功率。

(3)提升了監控能力:采用Prometheus對容器云的多級監控,使得監控指標更豐富,監控內容更完善,運維自動化程度的加強,提高了故障通知的及時性和故障響應的效率。

(4)實現了自動擴縮容:通過對檢測服務的容器預定義GPU的指標,可以自動的對檢測服務進行擴容/縮容,既增強了服務的響應能力又提高了GPU資源的利用率。

4 ?結 ?論

容器云基于K3s技術將分析系統的部署可視化、運維自動化、各類服務高可用化、橫向擴縮容自動化。容器云在分析系統項目的遷移試用中達到了預期的效果,但對于原生云涉及的DevOps和持續交付兩部分本文暫未涉及,有待下一步進行探索和實踐。

參考文獻:

[1] 百度百科.Docker [EB/OL].[2021-04-19].https://baike. baidu.com/item/Docker/13344470?fr=aladdin.

[2] 翁涅元,單杏花,閻志遠,等.基于Kubernetes的容器云平臺設計與實踐 [J].鐵路計算機應用,2019,28(12):49-53.

[3] Kubernetes. Kubernetes是什么? [EB/OL].[2021-04-19].https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/.

[4] Rancher. K3s介紹 [EB/OL].[2021-04-19].https://docs. rancher.cn/docs/K3s/_index.

[5] Prometheus. OVERVIEW [EB/OL]. [2021-04-19].https://prometheus.io/docs/introduction/overview/.

[6] Docker Docs. Docker Registry [EB/OL].[2021-04-15].https://docs.docker.com/registry/.

[7] Rancher.架構介紹 [EB/OL].[2021-04-20].https://docs.rancher.cn/docs/K3s/architecture/_index.

[8] Kubernetes.調度GPU [EB/OL].[2021-04-18].https://kubernetes.io/zh/docs/tasks/manage-gpus/scheduling-gpus/.

作者簡介:劉忠(1976.12—),男,漢族,河北張家口人,工程師,研究方向:通信信息。

主站蜘蛛池模板: 57pao国产成视频免费播放| 97se亚洲综合不卡| 亚洲免费黄色网| 色久综合在线| 特黄日韩免费一区二区三区| 91丝袜乱伦| 91蝌蚪视频在线观看| …亚洲 欧洲 另类 春色| 国产精品久久久久久久伊一| 欧美一区二区精品久久久| 伊人大杳蕉中文无码| 欧美精品成人| 欧美综合在线观看| 91九色视频网| 另类综合视频| 欧美特级AAAAAA视频免费观看| 欧美日韩福利| 久久国产精品麻豆系列| 伊伊人成亚洲综合人网7777| 亚洲91精品视频| 中文字幕有乳无码| 手机精品福利在线观看| 国产色爱av资源综合区| 中文无码精品a∨在线观看| 国产欧美日韩一区二区视频在线| 2021国产v亚洲v天堂无码| 亚洲女同欧美在线| 欧美高清视频一区二区三区| 国产在线一区视频| 91亚洲视频下载| 欧美日韩精品综合在线一区| av在线无码浏览| 国产精品浪潮Av| 亚洲无码四虎黄色网站| 97国内精品久久久久不卡| 国产女人喷水视频| 国产丝袜啪啪| 99精品这里只有精品高清视频| 国产精品丝袜视频| 五月天在线网站| 色悠久久综合| 亚洲精品视频网| 亚洲成人黄色在线| 亚洲色图欧美| 成人日韩视频| swag国产精品| 青草精品视频| 美女高潮全身流白浆福利区| 国产成人1024精品下载| 国产无码精品在线播放| 国模视频一区二区| 亚洲国产日韩在线成人蜜芽| 青青草91视频| av一区二区人妻无码| 亚洲国产精品日韩欧美一区| 乱人伦中文视频在线观看免费| 亚洲国产精品人久久电影| 91在线精品麻豆欧美在线| av在线人妻熟妇| 国产成人精品一区二区免费看京| 熟妇丰满人妻| 麻豆国产精品视频| 97国产在线观看| 亚洲综合狠狠| 成人免费一区二区三区| 久久99国产精品成人欧美| 波多野结衣在线se| 亚洲人免费视频| 国产一区二区精品高清在线观看| 国产欧美一区二区三区视频在线观看| 国产成人永久免费视频| 69视频国产| 视频二区中文无码| 国产伦片中文免费观看| 日本a∨在线观看| 伊人久久久久久久| 欧美日韩第三页| 婷婷六月激情综合一区| 日本在线亚洲| 国产精品久久久久久久伊一| 色精品视频| 国产成人综合亚洲网址|