摘 要:目前用友云審、友人才、友云采、用戶中心、民太安陪伴網(wǎng)等互聯(lián)網(wǎng)平臺,都已經(jīng)跑在用友iuap云運維平臺上,順利實施了基于Kubernetes的微服務(wù)架構(gòu)。
什么是微服務(wù)架構(gòu)?
微服務(wù)(MicroServices)架構(gòu)是當(dāng)前互聯(lián)網(wǎng)業(yè)界的一個技術(shù)熱點,業(yè)內(nèi)各公司也都紛紛開展微服務(wù)化體系建設(shè)。微服務(wù)架構(gòu)的本質(zhì),是用一些功能比較明確、業(yè)務(wù)比較精練的服務(wù)去解決更大、更實際的問題。該架構(gòu)強調(diào)的一些準(zhǔn)則:單一職責(zé)、協(xié)議輕量、進程隔離、數(shù)據(jù)分離、獨立部署、按需伸縮。
什么是Kubernetes?
Kubernetes是Google開源的容器集群管理系統(tǒng),其提供應(yīng)用部署、維護、 擴展機制等功能,利用Kubernetes能方便地管理跨機器運行容器化的應(yīng)用,其主要功能:1) 自動化容器的部署和復(fù)制,隨時擴展或收縮容器規(guī)模。2) 以集群的方式運行、管理跨機器的容器。3) 將容器組織成組,并且提供容器間的負載均衡。4) 解決Docker跨機器容器之間的通訊問題。5) Kubernetes的自我修復(fù)機制使得容器集群保持健康狀態(tài)。
微服務(wù)架構(gòu)(MSA)跟SOA架構(gòu)有何不同?
微服務(wù)架構(gòu)是伴隨敏捷迭代開發(fā)而興起的,更加強調(diào)快速敏捷部署和伸縮,適用于功能拆分比較細的場景,粒度也更小、更獨立。協(xié)議上基于更加輕量化的REST API,供內(nèi)部各子系統(tǒng)及微服務(wù)之間調(diào)用。適合業(yè)務(wù)相對獨立、簡單的互聯(lián)網(wǎng)場景。強調(diào)服務(wù)的獨立部署和易伸縮能力。下圖是詳細的對比:
怎么理解服務(wù)注冊和服務(wù)發(fā)現(xiàn)?
微服務(wù)架構(gòu)下,有大量的微服務(wù)需要處理。由于微服務(wù)的快速和敏捷研發(fā),他們的位置可能會動態(tài)變化。因此在運行時需要能夠發(fā)現(xiàn)服務(wù)所在的位置,服務(wù)發(fā)現(xiàn)可以解決這個問題。
服務(wù)注冊:注冊中心有微服務(wù)的實例和位置信息,微服務(wù)在啟動時向注冊中心注冊自己的信息,關(guān)閉時注銷。其它使用者能夠通過注冊中心找到可用的微服務(wù)和相關(guān)信息。
服務(wù)發(fā)現(xiàn):為了能找到可用的服務(wù)和他們的位置信息,需要服務(wù)發(fā)現(xiàn)機制。有兩種發(fā)現(xiàn)機制,客戶端發(fā)現(xiàn)和服務(wù)端發(fā)現(xiàn)。WEB應(yīng)用中,比較常用的是服務(wù)端發(fā)現(xiàn)的方式:客戶端/API網(wǎng)關(guān)把請求發(fā)送到已知位置信息的組件(比如負載均衡器)。組件去訪問注冊中心,找到微服務(wù)的路徑信息,并跳轉(zhuǎn)到相應(yīng)的微服務(wù)。
用友iuap云運維平臺如何基于Kubernetes實施微服務(wù)?
基于平臺的微服務(wù)部署變得不同于傳統(tǒng)模式:能夠獨立于其他微服務(wù)發(fā)布或者取消發(fā)布; 微服務(wù)可以水平擴展(某一個服務(wù)比其他的請求量大);能夠?qū)崿F(xiàn)快速的構(gòu)建和發(fā)布;各微服務(wù)之間的功能不相互影響。使用基于Kubernetes的方式部署微服務(wù),用戶需要的只是定義服務(wù)的狀態(tài),而不是部署過程。
先來看一下Kubenetes整體框架,如下圖所示:主要包括kubecfg、Master API Server、Kubelet、Minion以及Proxy。
Master定義了Kubernetes 集群Master/API Server的主要聲明,包括Pod Registry、Controller Registry、Service Registry、Endpoint Registry、Minion Registry、Binding Registry、REST Storage以及Client, 是client(Kubecfg)調(diào)用Kubernetes API,管理Kubernetes主要構(gòu)件Pods、Services、Minions、容器的入口。 Minion負責(zé)跟蹤Kubernetes 集群中有多少臺主機。Pod負責(zé)跟蹤集群中有多少Pod在運行,及跟Minion的映射關(guān)系。
下面我們一起看下,基于Kubernetes是如何進行服務(wù)注冊發(fā)現(xiàn)的,其詳細的架構(gòu)如下圖所示:
Kubelet是Kubernetes集群中每個Minion和Master API Server的連接點,Kubelet運行在每個Minion上,是Master API Server和Minion之間的橋梁,接收Master API Server分配給它的commands和work,與持久性鍵值存儲etcd、file、server和http進行交互,讀取配置信息。Kubelet的主要工作是管理Pod和容器的生命周期,其包括Docker Client、Root Directory、Pod Workers、Etcd Client、Cadvisor Client以及Health Checker組件。
部署完畢后的Kubernetes集群,其各組件和微服務(wù)架構(gòu)所提出的一些準(zhǔn)則的對應(yīng)關(guān)系,如下圖所示:
應(yīng)用以Docker容器的形態(tài),通過Namespace隔離的運行在定義好的Pod當(dāng)中,各微服務(wù)之間的調(diào)用變得如此簡單,再也不用為微服務(wù)的實施和治理煩惱了。
目前用友云審批、友人才、友云采、用戶中心、民太安陪伴網(wǎng)等互聯(lián)網(wǎng)平臺,都已經(jīng)跑在用友iuap云運維平臺上,順利實施了基于Kubernetes的微服務(wù)架構(gòu)。
來源:XXX(非中文科技資訊)的作品均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載請尊重版權(quán)保留出處,一切法律責(zé)任自負。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹慎對待。投資者據(jù)此操作,風(fēng)險自擔(dān)。
如發(fā)現(xiàn)本站文章存在問題,提供版權(quán)疑問、身份證明、版權(quán)證明、聯(lián)系方式等發(fā)郵件至news@citnews.com.cn。
2024年的Adobe MAX 2024發(fā)布會上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實質(zhì)性的幫助,雙十一期間低至2799元,性價比很高,簡直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會——工業(yè)互聯(lián)網(wǎng)標(biāo)識解析專題論壇在沈陽成功舉辦。