欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微服務(wù)運行指南——ForCattle-創(chuàng)新互聯(lián)

站在微服務(wù)的角度看容器的基礎(chǔ)設(shè)施服務(wù)可以分為三層:

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、郯城ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的郯城網(wǎng)站制作公司
  1. 微服務(wù)基礎(chǔ)層

  2. 微服務(wù)構(gòu)建層

  3. 微服務(wù)訪問層

微服務(wù)運行指南——For Cattle

Rancher的服務(wù)發(fā)現(xiàn)就是基于rancher-dns來實現(xiàn),創(chuàng)建的stack&service都會生成相應(yīng)的DNS記錄,用戶可以通過相應(yīng)的規(guī)則進行訪問,這樣在微服務(wù)之間就可以無需知曉各自的IP地址,直接用服務(wù)名進行連接即可。

微服務(wù)基礎(chǔ)層主要是為容器提供計算、存儲、網(wǎng)絡(luò)等基礎(chǔ)資源。主機計算資源主要是對docker-machine封裝來提供相關(guān)服務(wù);容器存儲通過Convoy組件來接入,目前對NFS協(xié)議的存儲適配性最佳;容器之間的網(wǎng)絡(luò)通過rancher-net組件實現(xiàn),目前支持ipsec overlay,在Rancher1.2版本會支持CNI標準的網(wǎng)絡(luò)插件。

微服務(wù)構(gòu)建層,除了有微服務(wù)本身主體程序,還需要有一些額外的輔助工具來完善對應(yīng)微服務(wù)的架構(gòu)體系。rancher-dns來實現(xiàn)服務(wù)發(fā)現(xiàn)機制;rancher-metadata可以靈活動態(tài)向微服務(wù)所在容器中注入一些配置數(shù)據(jù);healthcheck來保證微服務(wù)的高可用;同時我們還需要有微服務(wù)打包的工具,保證微服務(wù)可以在任意環(huán)境拉起運行。

微服務(wù)訪問層,目前服務(wù)對外暴露訪問主要以DNS綁定或是負載均衡VIP方式。Rancher提供external-dns、external-lb框架可以讓高級用戶hack自身的場景需求,external-dns除了支持公共的DNS服務(wù)(如route53),還支持內(nèi)部DNS服務(wù)器(如bind9),而external-lb目前支持F5設(shè)備。除此之外,Rancher內(nèi)置的負載均衡是基于Haproxy實現(xiàn)的,支持L4-L7。

本次分享,我將會以概念介紹原理講解并穿插一些實際案例這樣的方式進行分享。

微服務(wù)運行指南——For Cattle

Rancher的元數(shù)據(jù)服務(wù)rancher-metadata靈活性非常大,比較復(fù)雜的微服務(wù)架構(gòu)可以通過metadata實現(xiàn)一定程度的解耦,尤其是confd+metadata會有意想不到妙用,這部分內(nèi)容可以參考 http://niusmallnan.github.io/_build/html/_templates/rancher/confd_metadata.html

微服務(wù)運行指南——For Cattle微服務(wù)運行指南——For Cattle

Rancher的healthcheck基于Haproxy實現(xiàn),支持TCP/HTTP,當unhealthy觸發(fā)時按照預(yù)先設(shè)置的策略執(zhí)行:

  • 什么也不做

  • 按照scale的容器數(shù)量重建

  • 保證至少x個healthy的容器數(shù)量

微服務(wù)運行指南——For Cattle

當針對某個service創(chuàng)建healthcheck策略后,service中容器所在的agent節(jié)點上會啟動Haproxy服務(wù),同時把healthcheck的配置轉(zhuǎn)化為Haproxy的配置。如圖中所示添加了backend,其對應(yīng)的ip就是container的ip。此外還要將Haproxy的stats scket暴露出來,以便讀取backend的狀態(tài)信息。

微服務(wù)運行指南——For Cattle

我們可以在外部程序中與Haproxy sock通信,可以獲取相關(guān)backend的狀態(tài)信息,由于我們在Haproxy中設(shè)置check機制,所以backend的狀態(tài)是會自動更新的。

微服務(wù)運行指南——For Cattle

Rancher Agent上運行的host-api組件通過Haproxy sock來讀取backend狀態(tài)信息,同時通過rancher event機制把狀態(tài)信息push給rancher-server,rancher-server根據(jù)之前設(shè)置的healthcheck策略,來控制相關(guān)的rancher agent執(zhí)行container recreate操作。

微服務(wù)運行指南——For Cattle

如果微服務(wù)本身是自帶服務(wù)端口(TCP/HTTP),那么healthcheck規(guī)則很好設(shè)置,只要正常填寫表單項就可以。但實際應(yīng)用中有些微服務(wù)并不會有端口暴露,它可能只是一個與DB交互的程序,這時我們會考慮讓服務(wù)本身不要有大的代碼改造,所以就需要用一些小工具來輔助一下。

微服務(wù)運行指南——For Cattle

微服務(wù)的訪問入口,除了我們熟知的LB方式,還可以通過綁定DNS來實現(xiàn),尤其是在私有云場景下,內(nèi)部DNS的使用其實比單純使用LB暴露IP+Port方式更加簡潔,因為這樣無需考慮微服務(wù)的容器漂移導(dǎo)致的服務(wù)IP出現(xiàn)變化。

微服務(wù)運行指南——For Cattle

Rancher提供了一個external-dns框架 https://github.com/rancher/external-dns,它可以實現(xiàn)service的服務(wù)地址轉(zhuǎn)換成DNS的記錄。

微服務(wù)運行指南——For Cattle

私有云場景中,很多行業(yè)用戶在內(nèi)部都使用F5硬件負載均衡來暴露服務(wù)訪問地址。微服務(wù)的改造我們盡量控制在程序架構(gòu)層面,而原有的網(wǎng)絡(luò)結(jié)構(gòu)盡量不要改變,那么就會引來一個微服務(wù)場景如何整合F5設(shè)備的問題。

微服務(wù)運行指南——For Cattle

我們以一個應(yīng)用場景為例,生產(chǎn)環(huán)境系統(tǒng)中有4個微服務(wù)暴露端口分別是9070、9071、9072、9073,出于容災(zāi)恢復(fù)的考慮需要部署兩套環(huán)境主環(huán)境和備環(huán)境,每個環(huán)境三臺主機,所有的數(shù)據(jù)庫層均放在非容器環(huán)境中,所有服務(wù)最終通過F5來暴露訪問。

微服務(wù)運行指南——For Cattle

基于Rancher來實現(xiàn)這種應(yīng)用場景:創(chuàng)建兩個environment分屬主環(huán)境和備環(huán)境,由于是不同的ENV,所以這兩個環(huán)境是從計算存儲網(wǎng)絡(luò)層面都是隔離的。每個環(huán)境中創(chuàng)建一個stack,stack下創(chuàng)建4個service,service加上global=true的label,保證每臺host上都運行該service,同時通過portmap把service的服務(wù)端口直接暴露在host上,外部的F5設(shè)備則將VIP配置到這些HostIP+Port上。

微服務(wù)運行指南——For Cattle

關(guān)鍵的F5設(shè)置,我們要考慮最好能夠動態(tài)設(shè)置。Rancher提供了一個external-lb框架 https://github.com/rancher/external-lb來解決此問題,F(xiàn)5的驅(qū)動亦位列其中,同樣也是通過rancher-metadata組件來獲取微服務(wù)的IP+Port信息。

微服務(wù)運行指南——For Cattle

浮動IP本是Iaas的產(chǎn)物,而Caas仍處在不斷演變的過程中,企業(yè)內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)仍然需要浮動IP的機制。最主要的場景就是防火墻的規(guī)則設(shè)置,通常其規(guī)則都是針對某個IP,而這個IP就意味著無論后端的服務(wù)怎么變換,它要求IP是不能變化的,否則就要不停的修改防火墻規(guī)則,這是企業(yè)運維人員最無法接受的。

本質(zhì)上我們需要解決微服務(wù)相關(guān)的容器發(fā)生漂移之后,其對外暴露的IP仍然保持不變。

Rancher的合作伙伴睿云智合提出過一個浮動IP的解決方案,是一個很不錯的思路。

當然我們也可以利用Cattle自有機制來變通地搞定這個問題。

微服務(wù)運行指南——For Cattle

微服務(wù)的訪問入口使用內(nèi)置的rancher-lb方式,可以通過label scheduling方式,讓rancher-lb的容器只落在固定主機上,相關(guān)的防火墻只要配置固定的主機IP即可。

微服務(wù)運行指南——For Cattle

最后,我們來一起看一下,比較合適的通用的微服務(wù)部署結(jié)構(gòu)。

微服務(wù)運行指南——For Cattle

這里面使用sidekick容器來分離主服務(wù)的功能,配置文件和日志分別由不同的容器來處理,同時保證整體性,可以完整擴容和克隆。配置文件統(tǒng)一放在 convoy連接的NFS存儲中,保證配置文件的一致性。logging容器會把日志統(tǒng)一發(fā)送到ELK日志系統(tǒng)中,便于集中查詢和管理。保證服務(wù)的可用性,healthcheck必不可少。外部則使用內(nèi)置的Rancher LB來暴露訪問。

Q & A

Q:convoy插件的現(xiàn)在有支持ceph或者gluster的catalog么?

A:gluster的catalog 之前有,但是一直有些問題,現(xiàn)在已經(jīng)被移除了。convoy目前還不支持ceph。

Q:最后一個架構(gòu)里面,是把日志存到一個volume,然后應(yīng)用和日志服務(wù),同時掛載的意思么?

A:日志就是通過logging容器發(fā)送到ELK中收集起來。

Q:直接用log插件發(fā)的么?

A:log driver只能把標準輸入輸出發(fā)送出去,而圖中的架構(gòu)更適合傳統(tǒng)的寫日志文件形式,把日志文件的內(nèi)容發(fā)送到elk中。

Q:具體的操作是不是日志存在一個sidekick 容易中,讓后讓logging容器來解析和發(fā)送?

A:是這樣的。

Q:這樣這個volume 需要mount 本地目錄上去么?還是就已一個container的形式存在?

A:一個container足矣。

Q:現(xiàn)在convoy是不是暫時沒有其他方案把一個集群的本地host的磁盤利用起來?

A:Rancher有一個longhorn是你說的場景,還在迭代中。

原文來源:Rancher Labs

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當前名稱:微服務(wù)運行指南——ForCattle-創(chuàng)新互聯(lián)
分享路徑:http://chinadenli.net/article22/disdcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、電子商務(wù)、網(wǎng)站導(dǎo)航、定制網(wǎng)站移動網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化