国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker Consul詳解與部署示例

這篇具有很好參考價值的文章主要介紹了Docker Consul詳解與部署示例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

?

目錄

Consul構(gòu)成

Docker Consul 概述

Raft算法

服務(wù)注冊與發(fā)現(xiàn)

健康檢查

Key/Value存儲

多數(shù)據(jù)中心

部署模式

consul-template守護(hù)進(jìn)程

registrator容器

consul服務(wù)部署(192.168.41.31)

環(huán)境準(zhǔn)備

搭建Consul服務(wù)

查看集群信息

registrator服務(wù)部署(192.168.41.32)

安裝 Gliderlabs/Registrator:

測試服務(wù)發(fā)現(xiàn)功能是否正常

驗證 http 和 nginx 服務(wù)是否注冊到 consul

consul-template服務(wù)部署(192.168.41.31)

準(zhǔn)備 template nginx 模板文件

編譯安裝配置nginx

配置并啟動 template

訪問 template-nginx

增加一個 nginx 容器節(jié)點(diǎn)測試

構(gòu)建Consul架構(gòu)多節(jié)點(diǎn)

搭建示例


之前的架構(gòu)

Docker Consul詳解與部署示例,云,docker,consul,容器,運(yùn)維

?優(yōu)化后

Docker Consul詳解與部署示例,云,docker,consul,容器,運(yùn)維

Consul構(gòu)成

????????Consul由多個關(guān)鍵組件組成,這些組件共同協(xié)作以實現(xiàn)分布式系統(tǒng)中的服務(wù)發(fā)現(xiàn)、健康檢查、配置管理等功能。以下是Consul的主要組成部分:

  • Agent(代理): Agent是Consul集群中每個節(jié)點(diǎn)上運(yùn)行的守護(hù)進(jìn)程。它有兩種模式:

  • Server(服務(wù)器): 負(fù)責(zé)維護(hù)集群狀態(tài)、參與領(lǐng)導(dǎo)者選舉、響應(yīng)RPC查詢等。一個數(shù)據(jù)中心通常有多個Server,通過Raft協(xié)議保持一致性。

  • Client(客戶端): 轉(zhuǎn)發(fā)所有RPC請求到Server,并可運(yùn)行在應(yīng)用程序的同一主機(jī)上,用于將服務(wù)發(fā)現(xiàn)請求轉(zhuǎn)發(fā)給Server。

  • Server集群: 由多個Server組成,通過Raft選舉協(xié)議來維護(hù)領(lǐng)導(dǎo)者,負(fù)責(zé)處理集群狀態(tài)和事務(wù)。

  • DataCenter(數(shù)據(jù)中心): 邏輯上劃分的數(shù)據(jù)中心單元,Consul集群可以在不同的數(shù)據(jù)中心之間進(jìn)行通信。

  • Members(成員): Consul集群中的各個節(jié)點(diǎn)或?qū)嵗?,通過Gossip協(xié)議進(jìn)行通信和狀態(tài)同步。

  • Gossip協(xié)議: 基于Serf實現(xiàn)的Gossip協(xié)議用于節(jié)點(diǎn)之間的通信。包括LAN Gossip用于同一數(shù)據(jù)中心內(nèi)的通信,以及WAN Gossip用于跨數(shù)據(jù)中心的通信。

  • Catalog(目錄): 用于存儲和管理服務(wù)和節(jié)點(diǎn)信息的目錄服務(wù)。包括服務(wù)發(fā)現(xiàn)、健康檢查和節(jié)點(diǎn)元數(shù)據(jù)等信息。

  • Service Discovery(服務(wù)發(fā)現(xiàn)): 通過DNS或HTTP接口提供服務(wù)注冊和服務(wù)發(fā)現(xiàn)功能,使得應(yīng)用程序能夠發(fā)現(xiàn)并與其他服務(wù)通信。

  • Health Checking(健康檢查): 定期檢查服務(wù)的健康狀態(tài),如果服務(wù)不健康,則通知集群中的其他成員。

這些組件共同構(gòu)成了Consul的體系結(jié)構(gòu),使其成為一個高度可用、分布式、橫向可擴(kuò)展的系統(tǒng),適用于構(gòu)建可靠的服務(wù)基礎(chǔ)設(shè)施。


Docker Consul 概述

  • Consul是由Google開源的服務(wù)管理軟件,使用Go語言進(jìn)行開發(fā)。它提供了多數(shù)據(jù)中心、分布式高可用、服務(wù)發(fā)現(xiàn)和配置共享的功能。采用Raft算法確保服務(wù)的高可用性,內(nèi)置了服務(wù)注冊與發(fā)現(xiàn)框架、分布一致性協(xié)議實現(xiàn)、健康檢查、Key/Value存儲和多數(shù)據(jù)中心方案,不再依賴其他工具(例如ZooKeeper等)。Consul的部署簡單,只需一個可運(yùn)行的二進(jìn)制包。

  • 安裝consul是用于服務(wù)注冊,也就是容器本身的一些信息注冊到consul里面,其他程序可以通過consul獲取注冊的相關(guān)服務(wù)信息,這就是服務(wù)注冊與發(fā)現(xiàn)。

主要特點(diǎn)和運(yùn)行模式如下:

  • Raft算法: 用于保證服務(wù)的高可用性,實現(xiàn)分布式一致性。

  • 服務(wù)注冊與發(fā)現(xiàn)框架: 內(nèi)置的機(jī)制允許服務(wù)在Consul中注冊和被發(fā)現(xiàn),實現(xiàn)動態(tài)的服務(wù)管理。consul通過DNS或者HTTP接口使服務(wù)注冊和服務(wù)發(fā)現(xiàn)變的很容易,一些外部服務(wù),例如saas提供的也可以一樣注冊。

  • 健康檢查: Consul支持對服務(wù)進(jìn)行健康檢查,確保只有健康的服務(wù)被提供給客戶端。健康檢測使consul可以快速的告警在集群中的操作。和服務(wù)發(fā)現(xiàn)的集成,可以防止服務(wù)轉(zhuǎn)發(fā)到故障的服務(wù)上面。

  • Key/Value存儲: 提供了簡單的鍵值存儲,適用于配置共享等場景。一個用來存儲動態(tài)配置的系統(tǒng)。提供簡單的HTTP接口,可以在任何地方操作。

  • 多數(shù)據(jù)中心: 支持跨多個數(shù)據(jù)中心的服務(wù)注冊、發(fā)現(xiàn)和協(xié)作。無需復(fù)雜的配置,即可支持任意數(shù)量的區(qū)域。

  • 部署模式: 每個節(jié)點(diǎn)都運(yùn)行Consul agent,有兩種運(yùn)行模式:server和client。

  • 在client模式下,節(jié)點(diǎn)不持久化注冊的服務(wù)信息,而是將其轉(zhuǎn)發(fā)到server節(jié)點(diǎn)。

  • 在server模式下,節(jié)點(diǎn)負(fù)責(zé)持久化注冊信息,并負(fù)責(zé)同步信息給其他server節(jié)點(diǎn),同時執(zhí)行健康監(jiān)測。

????????Consul的架構(gòu)建議每個數(shù)據(jù)中心運(yùn)行3或5個server節(jié)點(diǎn)以確保數(shù)據(jù)安全,并保證leader的選舉能夠正確進(jìn)行。leader負(fù)責(zé)同步注冊信息和執(zhí)行節(jié)點(diǎn)健康監(jiān)測。整體上,Consul提供了強(qiáng)大的服務(wù)治理和管理功能,使得構(gòu)建分布式系統(tǒng)變得更加容易和可靠。

Raft算法

????????Raft算法是一種分布式一致性算法,用于確保分布式系統(tǒng)中的多個節(jié)點(diǎn)能夠就共享狀態(tài)達(dá)成一致。Raft的設(shè)計目標(biāo)是提供一種相對容易理解的分布式共識算法,以取代更復(fù)雜的Paxos算法。

領(lǐng)導(dǎo)者選舉:

  • Raft中的節(jié)點(diǎn)分為三種狀態(tài):領(lǐng)導(dǎo)者(Leader)、跟隨者(Follower)和候選人(Candidate)。

  • 集群啟動時,所有節(jié)點(diǎn)都是跟隨者。一個跟隨者可以成為候選人,然后通過領(lǐng)導(dǎo)者選舉機(jī)制競爭成為領(lǐng)導(dǎo)者。

  • 在選舉過程中,每個節(jié)點(diǎn)都有一個隨機(jī)的選舉超時時間,首先超時的節(jié)點(diǎn)成為候選人,并開始領(lǐng)導(dǎo)者選舉。

領(lǐng)導(dǎo)者職責(zé):

  • 一旦節(jié)點(diǎn)成為領(lǐng)導(dǎo)者,它負(fù)責(zé)在集群中產(chǎn)生并復(fù)制日志條目,以確保所有節(jié)點(diǎn)的日志保持一致。

  • 領(lǐng)導(dǎo)者定期向跟隨者發(fā)送心跳,以維持其領(lǐng)導(dǎo)地位。

日志復(fù)制:

  • 日志是Raft中用于達(dá)成一致性的關(guān)鍵組件。領(lǐng)導(dǎo)者負(fù)責(zé)向所有跟隨者復(fù)制日志。

  • 當(dāng)客戶端請求寫入時,領(lǐng)導(dǎo)者將該請求附加到其日志中,并通過心跳將日志條目復(fù)制到所有跟隨者的日志中。

一致性保證:

  • Raft保證當(dāng)大多數(shù)節(jié)點(diǎn)正常運(yùn)行時,系統(tǒng)能夠達(dá)成一致的狀態(tài)。大多數(shù)節(jié)點(diǎn)包括領(lǐng)導(dǎo)者本身。

  • 如果有部分節(jié)點(diǎn)不可用或發(fā)生網(wǎng)絡(luò)分區(qū),系統(tǒng)將等待大多數(shù)節(jié)點(diǎn)重新恢復(fù)后繼續(xù)操作。

持久性:

  • 節(jié)點(diǎn)的狀態(tài)(包括日志、當(dāng)前任期等)需要持久化到磁盤,以便在重啟后能夠恢復(fù)。

????????Raft算法通過上述機(jī)制確保了分布式系統(tǒng)中的一致性和可用性,同時提供了相對較簡單的理解和實現(xiàn)方式。這使得Raft在構(gòu)建分布式系統(tǒng)時更易于應(yīng)用和維護(hù),相較于其他復(fù)雜的共識算法具有更高的可讀性。

服務(wù)注冊與發(fā)現(xiàn)

????????服務(wù)注冊與發(fā)現(xiàn)在微服務(wù)架構(gòu)中扮演著至關(guān)重要的角色,特別是在從單節(jié)點(diǎn)服務(wù)過渡到多節(jié)點(diǎn)分布式架構(gòu)的情境下。初始階段,服務(wù)通常是單節(jié)點(diǎn)的,缺乏高可用性和對服務(wù)壓力的有效處理,服務(wù)間調(diào)用主要通過簡單的接口訪問實現(xiàn)。隨著多節(jié)點(diǎn)分布式架構(gòu)的出現(xiàn),最初的解決方法是在服務(wù)前端引入負(fù)載均衡,但這種方式存在一些問題:

  • 繁瑣的配置: 需要在配置文件中配置所有后端服務(wù)的網(wǎng)絡(luò)位置,導(dǎo)致配置復(fù)雜繁瑣。

  • 網(wǎng)絡(luò)位置的變化: 如果后端服務(wù)的網(wǎng)絡(luò)位置發(fā)生變化,所有調(diào)用者都需要手動修改配置,不利于維護(hù)和擴(kuò)展。

????????為了解決這些問題,引入了服務(wù)注冊與發(fā)現(xiàn)機(jī)制。其基本思想是后端服務(wù)(A-N)將自己的網(wǎng)絡(luò)位置注冊到服務(wù)發(fā)現(xiàn)模塊,而服務(wù)發(fā)現(xiàn)模塊以鍵值對的方式記錄這些信息,其中鍵通常是服務(wù)名,值是對應(yīng)的IP地址和端口。服務(wù)發(fā)現(xiàn)模塊會定期進(jìn)行健康檢查,確保這些后端服務(wù)可用。前端在調(diào)用后端服務(wù)時,向服務(wù)發(fā)現(xiàn)模塊查詢它們的網(wǎng)絡(luò)位置,然后再發(fā)起對它們的服務(wù)調(diào)用。

這種方式帶來了以下好處:

  • 簡化配置: 前端不再需要手動配置所有后端服務(wù)的網(wǎng)絡(luò)位置,極大地簡化了配置管理。

  • 動態(tài)適應(yīng): 服務(wù)發(fā)現(xiàn)模塊可以動態(tài)監(jiān)測后端服務(wù)的健康狀態(tài),使得系統(tǒng)能夠在運(yùn)行時適應(yīng)服務(wù)的變化。

  • 解耦前后端: 前端與后端服務(wù)完全解耦,前端只需與服務(wù)發(fā)現(xiàn)模塊通信,而不需要關(guān)心后端服務(wù)的具體網(wǎng)絡(luò)位置。

健康檢查

????????Consul是一個開源的服務(wù)發(fā)現(xiàn)和配置工具,它提供了健康檢查的功能,以確保只有健康的服務(wù)被提供給客戶端。

健康檢查類型:

  • Consul支持多種類型的健康檢查,包括HTTP、TCP、Interval、Script等。這意味著你可以選擇適合你服務(wù)類型的不同健康檢查方式。

HTTP健康檢查:

  • 通過發(fā)送HTTP請求到服務(wù)的指定端點(diǎn),Consul可以定期檢查服務(wù)是否響應(yīng)正常。如果服務(wù)響應(yīng)正常,就被標(biāo)記為健康狀態(tài),否則標(biāo)記為不健康狀態(tài)。

TCP健康檢查:

  • Consul還支持通過TCP連接檢查服務(wù)的健康狀態(tài)。它會嘗試建立TCP連接并檢查是否成功,從而確定服務(wù)是否健康。

Interval健康檢查:

  • Consul可以通過指定的時間間隔來定期檢查服務(wù)的健康狀態(tài)。如果在指定的時間內(nèi)沒有收到服務(wù)的響應(yīng),就會被標(biāo)記為不健康。

Script健康檢查:

  • 對于一些特殊需求,Consul還支持通過執(zhí)行自定義腳本來進(jìn)行健康檢查。這使得你可以根據(jù)具體情況定義健康檢查的邏輯。

健康狀態(tài)更新:

  • 當(dāng)服務(wù)的健康狀態(tài)發(fā)生變化時,Consul會及時更新服務(wù)注冊表,確??蛻舳酥荒茉L問到健康的服務(wù)實例。

????????通過這些健康檢查機(jī)制,Consul能夠?qū)崿F(xiàn)對服務(wù)狀態(tài)的實時監(jiān)測和管理。這對于構(gòu)建健壯的分布式系統(tǒng)以及提供高可用性的服務(wù)非常關(guān)鍵。

Key/Value存儲

????????Key/Value存儲是一種簡單而有效的數(shù)據(jù)存儲方式,Consul提供了這樣的功能,適用于配置共享等場景。

簡單鍵值對:

  • Consul的Key/Value存儲是基于簡單的鍵值對的概念。每個鍵都是一個字符串,與之相關(guān)聯(lián)的是一個任意的數(shù)值或字符串值。

配置共享:

  • Key/Value存儲通常用于配置共享,服務(wù)可以將其配置信息存儲在Consul的Key/Value存儲中,而其他服務(wù)可以從中讀取配置信息。這樣的設(shè)計使得配置的管理變得簡單且集中化。

動態(tài)配置更新:

  • 由于Consul支持健康檢查和服務(wù)注冊,當(dāng)服務(wù)的配置發(fā)生變化時,可以通過更新Consul中的Key/Value存儲來實現(xiàn)動態(tài)配置的更新。這有助于系統(tǒng)在運(yùn)行時適應(yīng)配置的變化。

ACL控制:

  • Consul提供了ACL(Access Control List)機(jī)制,可以對Key/Value存儲進(jìn)行訪問控制。這意味著你可以定義哪些服務(wù)或用戶有權(quán)訪問和修改特定的配置。

版本控制:

  • Consul的Key/Value存儲支持版本控制,使得可以跟蹤配置的歷史變化。這在排查問題、回滾配置等方面非常有用。

HTTP API:

  • Consul提供了HTTP API,允許通過API對Key/Value存儲進(jìn)行操作。這使得可以通過編程方式管理和更新配置信息。

????????總體而言,Consul的Key/Value存儲為分布式系統(tǒng)提供了一種簡單而強(qiáng)大的配置管理方式,適用于多種場景,特別是在微服務(wù)架構(gòu)中,服務(wù)間的配置共享和動態(tài)更新變得非常方便。

多數(shù)據(jù)中心

????????Consul支持多數(shù)據(jù)中心的服務(wù)注冊、發(fā)現(xiàn)和協(xié)作,這使得它在構(gòu)建分布式系統(tǒng)時更具彈性和可擴(kuò)展性。

服務(wù)注冊與發(fā)現(xiàn):

  • Consul允許在不同數(shù)據(jù)中心的服務(wù)進(jìn)行注冊和發(fā)現(xiàn)。這意味著你可以在多個地理位置的數(shù)據(jù)中心中部署服務(wù),并使它們能夠互相發(fā)現(xiàn)和調(diào)用。

協(xié)作和一致性:

  • Consul使用Raft算法來確保多數(shù)據(jù)中心之間的一致性。這使得在不同數(shù)據(jù)中心的服務(wù)能夠保持一致的視圖,從而協(xié)同工作而不受分布式環(huán)境的影響。

WAN感知:

  • Consul是WAN(Wide Area Network)感知的,可以識別和處理位于不同地理位置的數(shù)據(jù)中心之間的網(wǎng)絡(luò)延遲和可用性差異。這有助于提供更可靠的服務(wù)注冊和發(fā)現(xiàn)功能。

多數(shù)據(jù)中心集群:

  • Consul支持構(gòu)建多數(shù)據(jù)中心的集群,每個數(shù)據(jù)中心都有自己的Consul集群。這些集群之間可以通過配置連接起來,實現(xiàn)跨數(shù)據(jù)中心的服務(wù)通信。

健康檢查和故障轉(zhuǎn)移:

  • Consul的健康檢查機(jī)制跨越多數(shù)據(jù)中心,確保服務(wù)在整個系統(tǒng)中保持健康狀態(tài)。如果在一個數(shù)據(jù)中心中的服務(wù)發(fā)生故障,Consul可以協(xié)調(diào)故障轉(zhuǎn)移以確保系統(tǒng)的可用性。

配置同步:

  • Consul還支持跨數(shù)據(jù)中心的配置同步,使得在一個數(shù)據(jù)中心中進(jìn)行的配置更改能夠自動傳播到其他數(shù)據(jù)中心。

????????通過這些特性,Consul提供了一個強(qiáng)大的基礎(chǔ)設(shè)施,支持構(gòu)建分布式系統(tǒng)的多數(shù)據(jù)中心部署,同時確保服務(wù)之間的高度一致性和可靠性。這對于全球化的應(yīng)用和服務(wù)非常重要。

部署模式

????????每個節(jié)點(diǎn)都運(yùn)行Consul agent,它是Consul的核心組件,負(fù)責(zé)實現(xiàn)服務(wù)注冊、發(fā)現(xiàn)、健康檢查等功能。有兩種運(yùn)行模式:server和client。

  • 在client模式下,節(jié)點(diǎn)不持久化注冊的服務(wù)信息,而是將其轉(zhuǎn)發(fā)到server節(jié)點(diǎn)。

  • 在server模式下,節(jié)點(diǎn)負(fù)責(zé)持久化注冊信息,并負(fù)責(zé)同步信息給其他server節(jié)點(diǎn),同時執(zhí)行健康監(jiān)測。

????????Consul的架構(gòu)建議每個數(shù)據(jù)中心運(yùn)行3或5個server節(jié)點(diǎn)以確保數(shù)據(jù)安全,并保證leader的選舉能夠正確進(jìn)行。leader負(fù)責(zé)同步注冊信息和執(zhí)行節(jié)點(diǎn)健康監(jiān)測。整體上,Consul提供了強(qiáng)大的服務(wù)治理和管理功能,使得構(gòu)建分布式系統(tǒng)變得更加容易和可靠。


consul-template守護(hù)進(jìn)程

consul-template 是與 Consul 集成的一個工具,用于渲染模板并自動更新配置文件。它通常與服務(wù)發(fā)現(xiàn)和配置管理一起使用,以確保服務(wù)實例的配置始終保持最新和一致。

守護(hù)進(jìn)程:

  • Consul-Template 作為一個守護(hù)進(jìn)程運(yùn)行,實時查詢 Consul 集群的信息。

查詢功能:

  • Consul-Template 可以查詢 Consul 中的服務(wù)目錄、Key、Key-values 等。這為動態(tài)配置文件的創(chuàng)建提供了強(qiáng)大的抽象功能。

模板語言:

  • 支持靈活的模板語言,允許用戶使用查詢結(jié)果動態(tài)地填充配置文件的內(nèi)容。這對于創(chuàng)建諸如 Apache/Nginx Proxy Balancers、Haproxy Backends 等動態(tài)配置非常有用。

自動更新:

  • 一旦模板渲染完成,consul-template 可以監(jiān)視 Consul 中的變化,并在檢測到更改時自動重新渲染模板。這使得配置的更新可以實時反映到運(yùn)行中的服務(wù)中。

觸發(fā)命令執(zhí)行:

  • 更新完成后,Consul-Template 可以選擇執(zhí)行 shell 命令,這樣可以在配置更新后觸發(fā)一些操作,比如重新加載 Nginx。

事件通知:

  • consul-template 提供了事件通知機(jī)制,可以在配置更改時執(zhí)行自定義的命令或腳本。這允許用戶根據(jù)需要執(zhí)行一些額外的操作,例如重新加載服務(wù)或執(zhí)行其他配置變更操作。

簡化配置管理:

  • 通過將配置信息從 Consul 中抽象出來,consul-template 簡化了配置的管理和分發(fā),特別適用于微服務(wù)架構(gòu)中的服務(wù)實例。

命令行工具和集成性:

  • consul-template 作為一個命令行工具,易于集成到不同的部署和自動化流程中,確保配置的動態(tài)性和一致性。

適用場景:

  • Consul-Template 特別適合在動態(tài)環(huán)境中使用,其中服務(wù)的數(shù)量和配置信息可能會經(jīng)常發(fā)生變化。它簡化了配置的管理,確保配置文件與實際服務(wù)狀態(tài)同步。

適用案例:

  • 常見的使用案例包括創(chuàng)建反向代理配置、負(fù)載均衡器配置等,其中服務(wù)實例的動態(tài)變化需要實時地更新配置文件。

registrator容器

????????Registrator 是一個用于自動注冊和注銷服務(wù)實例的工具,它通常與容器編排系統(tǒng)(如 Docker)一起使用。其主要功能是監(jiān)控運(yùn)行中的容器,并將它們注冊到服務(wù)發(fā)現(xiàn)系統(tǒng)中,以便其他服務(wù)可以發(fā)現(xiàn)和與之通信。

以下是 Registrator 的一些關(guān)鍵特點(diǎn)和功能:

  • 自動服務(wù)注冊: Registrator 監(jiān)控正在運(yùn)行的容器,并自動將它們注冊到服務(wù)發(fā)現(xiàn)系統(tǒng)中。這有助于確保所有運(yùn)行的服務(wù)都被正確地加入到服務(wù)注冊表中。

  • 支持多種服務(wù)發(fā)現(xiàn)后端: Registrator 支持多種服務(wù)發(fā)現(xiàn)后端,其中包括 Consul、etcd、SkyDNS 等。這使得它能夠適應(yīng)不同的環(huán)境和需求。

  • 容器事件監(jiān)聽: Registrator 通過監(jiān)聽容器的事件,例如容器的啟動和停止,來感知容器的狀態(tài)變化。一旦有新的容器啟動或舊的容器停止,Registrator 就會相應(yīng)地更新服務(wù)發(fā)現(xiàn)系統(tǒng)中的信息。

  • 與 Consul 搭配使用: Registrator 與 Consul 搭配使用。這意味著 Registrator 可以將容器注冊到 Consul 中,而Consul-Template則可以用來動態(tài)生成配置文件,實現(xiàn)服務(wù)配置的自動更新。

  • 簡化服務(wù)發(fā)現(xiàn)流程: Registrator 的存在簡化了服務(wù)發(fā)現(xiàn)的流程,使得新的服務(wù)實例能夠自動加入到服務(wù)注冊表中,而無需手動干預(yù)。

consul服務(wù)部署(192.168.41.31)

環(huán)境準(zhǔn)備

consul服務(wù)器 192.168.41.31 運(yùn)行consul服務(wù)、nginx服務(wù)、consul-template守護(hù)進(jìn)程
registrator服務(wù)器 192.168.41.32 運(yùn)行registrator容器、運(yùn)行nginx容器

這個架構(gòu)的運(yùn)行方式:

Consul服務(wù)器 (192.168.41.31):

  • Consul服務(wù)運(yùn)行: Consul作為服務(wù)發(fā)現(xiàn)和配置管理的中心。其他服務(wù)可以注冊到Consul,并通過其發(fā)現(xiàn)其他服務(wù)的實例和配置信息。

  • Nginx服務(wù)運(yùn)行: Nginx用于處理網(wǎng)絡(luò)流量,是作為反向代理服務(wù)器、負(fù)載均衡器等。

  • Consul-template守護(hù)進(jìn)程: 運(yùn)行Consul-template守護(hù)進(jìn)程,該進(jìn)程監(jiān)視Consul中配置的更改,并相應(yīng)地更新模板文件。這樣可以實現(xiàn)動態(tài)配置。

Registrator服務(wù)器 (192.168.41.32):

  • Registrator容器運(yùn)行: Registrator以容器方式運(yùn)行,用于自動注冊和注銷其他服務(wù)實例到Consul。當(dāng)新的服務(wù)容器啟動或關(guān)閉時,Registrator會更新Consul中的服務(wù)注冊信息。

  • Nginx容器運(yùn)行: Nginx以容器方式運(yùn)行,這樣可以更輕松地管理和部署。

????????一般來說,這種架構(gòu)的運(yùn)行方式是基于微服務(wù)和容器化的理念,通過Consul實現(xiàn)服務(wù)的發(fā)現(xiàn)和配置管理,Nginx處理網(wǎng)絡(luò)流量,并通過Registrator自動注冊和注銷服務(wù)實例。這種架構(gòu)具有靈活性和可伸縮性,容器化的部署方式使得服務(wù)的管理和擴(kuò)展更加方便。

systemctl stop firewalld.service
setenforce 0

搭建Consul服務(wù)

創(chuàng)建Consul服務(wù)目錄

mkdir /opt/consul

將Consul二進(jìn)制文件復(fù)制到創(chuàng)建的目錄:

cp consul_0.9.2_linux_amd64.zip /opt/consul

進(jìn)入Consul目錄:

cd /opt/consul

解壓Consul二進(jìn)制文件:

unzip consul_0.9.2_linux_amd64.zip

將解壓后的Consul二進(jìn)制文件移動到/usr/local/bin/目錄,以便系統(tǒng)能夠識別并執(zhí)行:

mv consul /usr/local/bin/

設(shè)置Consul代理,并在后臺啟動Consul服務(wù)端。

consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.41.31 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
  • ????????-server: 以server身份啟動。默認(rèn)是client。

    • -bootstrap: 表示該服務(wù)器將充當(dāng)引導(dǎo)服務(wù)器。

    • -ui: 啟用Consul的Web用戶界面。

    • -data-dir=/var/lib/consul-data: 指定Consul存儲數(shù)據(jù)的目錄。

    • -bind=192.168.41.31: 指定Consul綁定的IP地址。

    • -client=0.0.0.0: 允許從任何IP連接到Consul客戶端。

    • -node=consul-server01: 指定Consul節(jié)點(diǎn)的名稱。

    • &> /var/log/consul.log &: 將Consul的日志輸出到/var/log/consul.log文件,并在后臺運(yùn)行。

補(bǔ)充詳解

  • -server: 以server身份啟動。默認(rèn)情況下,Consul以client身份啟動。

  • -bootstrap: 控制server是否在bootstrap模式。在一個數(shù)據(jù)中心中,只能有一個server處于bootstrap模式。處于bootstrap模式的server可以自己選舉為server-leader。

  • -bootstrap-expect=2: 設(shè)置集群要求的最少server數(shù)量。當(dāng)集群中的server數(shù)量低于這個值時,整個集群將失效。

  • -ui: 啟用Consul的Web用戶界面。通過此參數(shù)啟動后,可以通過 http://localhost:8500/ui 訪問Consul自帶的Web UI界面。

  • -data-dir: 指定數(shù)據(jù)存儲目錄,即Consul用來存儲數(shù)據(jù)的路徑。

  • -bind: 指定在集群內(nèi)部的通訊地址。集群中的所有節(jié)點(diǎn)到此地址都必須是可達(dá)的。默認(rèn)為0.0.0.0。

  • -client: 指定Consul綁定在哪個client地址上,提供HTTP、DNS、RPC等服務(wù)。默認(rèn)為127.0.0.1。

  • -node: 指定節(jié)點(diǎn)在集群中的名稱。在一個集群中,節(jié)點(diǎn)名稱必須是唯一的。默認(rèn)為節(jié)點(diǎn)的主機(jī)名。

  • -datacenter: 指定數(shù)據(jù)中心的名稱。默認(rèn)為dc1。

查看服務(wù)

netstat -natp | grep consul

Consul 是一種開源的服務(wù)發(fā)現(xiàn)和配置工具,用于構(gòu)建分布式系統(tǒng)。當(dāng)啟動 Consul 后,默認(rèn)會監(jiān)聽以下五個端口:

  • 8300端口:

    • 用于服務(wù)間的復(fù)制(replication)。

    • 用于 Leader 的 forward。

  • 8301端口:

    • 用于局域網(wǎng)(LAN)中節(jié)點(diǎn)之間的 Gossip 協(xié)議通信。

    • 主要用于集群中的節(jié)點(diǎn)之間的發(fā)現(xiàn)和信息傳播。

  • 8302端口:

    • 用于廣域網(wǎng)(WAN)中節(jié)點(diǎn)之間的 Gossip 協(xié)議通信。

    • 與8301端口類似,但主要用于跨越較大區(qū)域的節(jié)點(diǎn)之間的通信。

  • 8500端口:

    • 提供 Consul 的 Web UI 界面。

    • 通過該端口可以訪問可視化的用戶界面,以便查看和管理 Consul 中的服務(wù)和節(jié)點(diǎn)。

  • 8600端口:

    • 用于使用 DNS 協(xié)議查看節(jié)點(diǎn)信息。

    • 允許通過 DNS 查詢的方式獲取節(jié)點(diǎn)和服務(wù)的信息,方便在應(yīng)用中通過域名進(jìn)行服務(wù)發(fā)現(xiàn)。

這些端口的默認(rèn)配置支持 Consul 在分布式環(huán)境中進(jìn)行節(jié)點(diǎn)發(fā)現(xiàn)、服務(wù)注冊和配置管理等任務(wù)。

查看集群信息

查看成員(Members)狀態(tài):

consul members

????????這個命令顯示了Consul集群中的成員狀態(tài)。

查看集群狀態(tài):

consul operator raft list-peers

????????這個命令顯示了Consul Raft協(xié)議的集群狀態(tài),列出了所有的Raft節(jié)點(diǎn)。

consul info | grep leader

????????這個命令通過Consul的信息檢索了領(lǐng)導(dǎo)者(leader)節(jié)點(diǎn)的地址,

通過HTTP API獲取集群信息: 通過Consul的HTTP API獲取集群信息的命令。這些命令可以通過curl進(jìn)行調(diào)用:

  • 查看集群server成員:
curl 127.0.0.1:8500/v1/status/peers
  • 查看集群server-leader:
curl 127.0.0.1:8500/v1/status/leader
  • 注冊的所有服務(wù):
curl 127.0.0.1:8500/v1/catalog/services
  • 查看nginx服務(wù)信息:
curl 127.0.0.1:8500/v1/catalog/nginx
  • 查看集群節(jié)點(diǎn)詳細(xì)信息:
curl 127.0.0.1:8500/v1/catalog/nodes

????????這些API調(diào)用允許通過HTTP請求獲取Consul集群的各種信息,如成員列表、服務(wù)信息等。確保Consul代理在本地運(yùn)行,并且API端口為8500。

registrator服務(wù)部署(192.168.41.32)

功能說明: 負(fù)責(zé)容器服務(wù)的自動注冊到 Nginx 集群,并支持服務(wù)的注銷到服務(wù)配置中心。

安裝 Gliderlabs/Registrator:

使用 Docker 運(yùn)行 Gliderlabs/Registrator 容器,并將其配置為使用 Consul 作為服務(wù)配置中心。

docker run -d \
  --name=registrator \
  --net=host \
  -v /var/run/docker.sock:/tmp/docker.sock \
  --restart=always \
  gliderlabs/registrator:latest \
  --ip=192.168.41.32 \
  consul://192.168.41.31:8500

解釋說明:

  • -d: 指定容器在后臺運(yùn)行(detached mode)。

  • --name=registrator: 為容器指定名稱為 "registrator"。

  • --net=host: 使用主機(jī)網(wǎng)絡(luò)模式,允許容器訪問主機(jī)網(wǎng)絡(luò)。

  • -v /var/run/docker.sock:/tmp/docker.sock: 將 Docker 守護(hù)進(jìn)程的 socket 映射到容器內(nèi),以便 Registrator 可以監(jiān)測容器的運(yùn)行狀態(tài)。

  • --restart=always: 指定容器在退出時總是重新啟動。

  • gliderlabs/registrator:latest: 使用 Gliderlabs/Registrator 鏡像的最新版本。

  • --ip=192.168.41.32: 設(shè)置 Registrator 的 IP 地址為 192.168.41.32。這是 Registrator 用于注冊服務(wù)的地址。

  • consul://192.168.41.31:8500: 指定 Consul 的連接地址為 consul://192.168.41.31:8500,這是作為服務(wù)配置中心。

????????這段命令將啟動 Registrator 容器,并配置其自動注冊和注銷服務(wù)到 Consul 中。確保 Consul 服務(wù)運(yùn)行在 192.168.41.31 的地址上,并監(jiān)聽端口 8500。

docker run \
  --net=host \ # 將容器設(shè)定為host網(wǎng)絡(luò)模式
  -v /var/run/docker.sock:/tmp/docker.sock \ # 掛載宿主機(jī)的Docker守護(hù)進(jìn)程Unix域套接字到容器中
  --restart=always \ # 在容器退出時總是重啟容器
  --ip <宿主機(jī)的IP> \ # 指定容器的IP為宿主機(jī)的IP
  consul \ # 指定容器使用Consul服務(wù)器,并可能包括IP和端口的指定

測試服務(wù)發(fā)現(xiàn)功能是否正常

docker run -itd -p 83:80 --name test-01 -h test01 nginx
docker run -itd -p 84:80 --name test-02 -h test02 nginx
docker run -itd -p 88:80 --name test-03 -h test03 httpd
docker run -itd -p 89:80 --name test-04 -h test04 httpd

????????這些命令用于在Docker中運(yùn)行四個容器(test-01、test-02、test-03、test-04),每個容器都運(yùn)行不同的Web服務(wù)(nginx或httpd),并映射宿主機(jī)的端口以便外部訪問。容器的主機(jī)名也通過-h參數(shù)進(jìn)行了設(shè)置。這樣可以測試服務(wù)發(fā)現(xiàn)功能是否正常工作。

驗證 http 和 nginx 服務(wù)是否注冊到 consul

  • 打開瀏覽器,在地址欄中輸入 http://192.168.41.31:8500。

  • 在Web頁面中,點(diǎn)擊 "NODES",然后點(diǎn)擊 "consurl-server01"。應(yīng)該會顯示出5個服務(wù)。

在consul服務(wù)器使用curl測試連接服務(wù)器

curl 127.0.0.1:8500/v1/catalog/services

????????執(zhí)行上述命令后,返回的JSON數(shù)據(jù)應(yīng)該包含已注冊的服務(wù)信息,例如:

{"consul":[],"httpd":[],"nginx":[]}

????????這表示Consul中已注冊的服務(wù)有"consul"、"httpd"和"nginx"。通過這些步驟和測試,可以驗證HTTP和Nginx服務(wù)是否成功注冊到Consul。

consul-template服務(wù)部署(192.168.41.31)

準(zhǔn)備 template nginx 模板文件

準(zhǔn)備 Nginx 模板文件: 在 Consul 服務(wù)器上操作,創(chuàng)建并編輯 Nginx 模板文件。

vim /opt/consul/nginx.ctmpl

定義 Nginx Upstream: 在模板文件中,定義一個簡單的 Nginx Upstream,使用 Consul-Template 查詢服務(wù)信息并生成 Upstream 配置。

upstream http_backend {
  {{range service "nginx"}}
   server {{.Address}}:{{.Port}};
  {{end}}
}

定義 Nginx Server 配置: 繼續(xù)在模板文件中定義 Nginx Server 配置,監(jiān)聽8000端口,設(shè)置反向代理到上述定義的 Upstream。

server {
    listen 8000;
    server_name localhost 192.168.41.31;
    access_log /var/log/nginx/kgc.com-access.log;  # 修改日志路徑
    index index.html index.php;
    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://http_backend;
    }
}

說明:

  • 模板中使用 {{range service "nginx"}} 遍歷 Consul 中所有名為 "nginx" 的服務(wù)實例,動態(tài)生成 Upstream 中的服務(wù)器地址和端口。

  • Server 配置中的監(jiān)聽端口為 8000,可以根據(jù)實際需求進(jìn)行調(diào)整。

  • Access log 路徑已經(jīng)設(shè)置為 /var/log/nginx/kgc.com-access.log,您可以根據(jù)需要修改日志路徑。

通過這樣的模板文件和 Consul-Template 的使用,您可以實現(xiàn) Nginx 配置的自動更新,確保新的服務(wù)實例能夠動態(tài)加入反向代理。這在微服務(wù)架構(gòu)中是一種靈活且自動化的方式來管理服務(wù)配置。

  • listen 8000;: Nginx 會在8000端口上監(jiān)聽請求。

  • server_name localhost 192.168.41.31;: 限定了這個 Server 配置的域名,只有請求中的域名匹配其中一個,這個 Server 配置才會生效。

  • access_log /var/log/nginx/kgc.com-access.log;: 設(shè)置訪問日志的路徑,記錄請求的詳細(xì)信息。

  • index index.html index.php;: 定義默認(rèn)的索引文件,Nginx 會依次嘗試使用這些文件。

  • location / { ... }: 配置了處理請求的位置,這里是根路徑 /。在這個位置配置了反向代理,將請求轉(zhuǎn)發(fā)到定義的 http_backend upstream。

通過這樣的模板文件和 Consul-Template 的使用,可以實現(xiàn) Nginx 配置的自動更新,確保新的服務(wù)實例能夠動態(tài)加入反向代理。這在微服務(wù)架構(gòu)中是一種靈活且自動化的方式來管理服務(wù)配置。

編譯安裝配置nginx

安裝必要的依賴:

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

創(chuàng)建nginx用戶:

useradd -M -s /sbin/nologin nginx

解壓nginx源碼文件:

tar zxvf nginx-1.12.0.tar.gz -C /opt/

進(jìn)入解壓后的目錄:

cd /opt/nginx-1.12.0/

配置并編譯nginx:

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make -j && make install

創(chuàng)建符號鏈接:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

配置nginx主配置文件:

vim /usr/local/nginx/conf/nginx.conf

在配置文件中添加以下內(nèi)容:

http {
  include mime.types;
  include vhost/*.conf;  # 添加虛擬主機(jī)目錄
  default_type application/octet-stream;
}

創(chuàng)建虛擬主機(jī)目錄:

mkdir /usr/local/nginx/conf/vhost

創(chuàng)建日志文件目錄:

mkdir /var/log/nginx

啟動nginx:

nginx

配置并啟動 template

下載并解壓Consul Template:

unzip consul-template_0.19.3_linux_amd64.zip -d /opt/

移動Consul Template到系統(tǒng)路徑:

cd /opt/
mv consul-template /usr/local/bin/

在前臺啟動Consul Template服務(wù)(請確保不要按下Ctrl+C中止Consul Template進(jìn)程):

consul-template --consul-addr 192.168.41.41:8500 \
--template "/opt/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
--log-level=info

在另一個終端查看生成的配置文件:

upstream http_backend {
   server 192.168.41.32:83;
   server 192.168.41.32:84;
}

server {
   listen 8000;
   server_name 192.168.41.31;
   access_log /var/log/nginx/kgc.cn-access.log;
   index index.html index.php;

   location / {
      proxy_set_header HOST $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Client-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://http_backend;
   }
}

訪問 template-nginx

列出所有Docker容器:

docker ps -a

進(jìn)入Nginx容器并創(chuàng)建一個測試文件:

docker exec -it 4f74d2c38844 bash
echo "this is test1 web" > /usr/share/nginx/html/index.html

進(jìn)入另一個Nginx容器并創(chuàng)建另一個測試文件:

docker exec -it b73106db285b bash
echo "this is test2 web" > /usr/share/nginx/html/index.html

通過瀏覽器訪問 http://192.168.41.31:8000/,并不斷刷新。

增加一個 nginx 容器節(jié)點(diǎn)測試

增加一個 Nginx 容器節(jié)點(diǎn),測試服務(wù)發(fā)現(xiàn)及配置更新功能。

docker run -itd -p 85:80 --name test-05 -h test05 nginx

該命令使用 Docker 運(yùn)行一個名為 test-05 的 Nginx 容器,將容器的端口映射到主機(jī)的端口 85,并設(shè)置容器的主機(jī)名為 test05。

觀察 template 服務(wù),該服務(wù)會從模板更新 /usr/local/nginx/conf/vhost/kgc.conf 文件內(nèi)容,并重載 Nginx 服務(wù)。

查看 /usr/local/nginx/conf/vhost/kgc.conf 文件內(nèi)容:

cat /usr/local/nginx/conf/vhost/kgc.conf

文件內(nèi)容展示了一個名為 http_backend 的 upstream 塊,包含四個服務(wù)器節(jié)點(diǎn)的定義,每個節(jié)點(diǎn)使用不同的端口(83、84、85、86)。

查看三臺 Nginx 容器的日志,以確認(rèn)請求正常輪詢到各個容器節(jié)點(diǎn)上:

docker logs -f test-01
docker logs -f test-02
docker logs -f test-05
docker logs -f test-06

這些命令分別查看了 test-01、test-02test-05test-06 這四個容器的日志,以確認(rèn)請求是否正常地輪詢到它們各自的節(jié)點(diǎn)上。

總體而言,這些步驟和命令用于測試在 Nginx 中增加新容器節(jié)點(diǎn)后的服務(wù)發(fā)現(xiàn)和配置更新功能,并確保請求能夠正常輪詢到新的容器節(jié)點(diǎn)。

構(gòu)建Consul架構(gòu)多節(jié)點(diǎn)

建立多節(jié)點(diǎn)的Consul集群有幾個重要的原因:

  • 高可用性: 多節(jié)點(diǎn)集群可以提供更高的系統(tǒng)可用性。當(dāng)一個節(jié)點(diǎn)發(fā)生故障或不可用時,其他節(jié)點(diǎn)仍然可以繼續(xù)提供服務(wù)。這是通過在集群中引入冗余節(jié)點(diǎn)來實現(xiàn)的,確保即使有節(jié)點(diǎn)失效,整個系統(tǒng)仍然能夠正常運(yùn)行。

  • 負(fù)載均衡: 多節(jié)點(diǎn)集群能夠均衡處理請求,防止某個節(jié)點(diǎn)成為瓶頸。通過在多個節(jié)點(diǎn)上分布服務(wù)實例,可以有效地分擔(dān)負(fù)載,提高系統(tǒng)的整體性能。

  • 容錯性: 多節(jié)點(diǎn)集群提供容錯機(jī)制,即使某個節(jié)點(diǎn)發(fā)生故障,系統(tǒng)也能夠保持可用。Consul使用Raft一致性算法來確保在節(jié)點(diǎn)失效或網(wǎng)絡(luò)分區(qū)的情況下,集群仍能維持一致的狀態(tài)。

  • 服務(wù)發(fā)現(xiàn)和配置: Consul用于服務(wù)發(fā)現(xiàn)和配置管理。多節(jié)點(diǎn)集群能夠更有效地管理和監(jiān)控分布式系統(tǒng)中的服務(wù),使其更易于擴(kuò)展和維護(hù)。

  • 水平擴(kuò)展: 隨著業(yè)務(wù)需求的增長,可以向集群添加更多的節(jié)點(diǎn),從而實現(xiàn)水平擴(kuò)展。這使得系統(tǒng)能夠處理更多的請求和數(shù)據(jù),保持高性能。

總體而言,建立多節(jié)點(diǎn)的Consul集群有助于構(gòu)建穩(wěn)健、可靠、高性能的分布式系統(tǒng),適用于各種規(guī)模的應(yīng)用和服務(wù)。

搭建示例

Consul 多節(jié)點(diǎn)配置

# 添加一臺已有docker環(huán)境的服務(wù)器192.168.41.33/24加入已有的群集中
consul agent \
-server \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.41.33 \
-client=0.0.0.0 \
-node=consul-server02 \
-enable-script-checks=true  \
-datacenter=dc1  \
-join 192.168.41.31 &> /var/log/consul.log &

參數(shù)說明:

  • -server: 將節(jié)點(diǎn)配置為服務(wù)器。

  • -ui: 啟用Consul的Web UI。

  • -data-dir=/var/lib/consul-data: 指定Consul數(shù)據(jù)目錄。

  • -bind=192.168.41.33: 綁定到指定的IP地址。

  • -client=0.0.0.0: 監(jiān)聽所有可用的網(wǎng)絡(luò)接口。

  • -node=consul-server02: 指定節(jié)點(diǎn)名稱為"consul-server02"。

  • -enable-script-checks=true: 設(shè)置檢查服務(wù)為可用。

  • -datacenter=dc1: 指定數(shù)據(jù)中心名稱。

  • -join 192.168.41.31: 將節(jié)點(diǎn)加入到已有的集群中。

其他命令:

# 顯示當(dāng)前Consul集群的成員列表
consul members
Node             Address             Status  Type    Build  Protocol  DC
consul-server01  192.168.41.31:8301  alive   server  0.9.2  2         dc1
consul-server02  192.168.41.33:8301  alive   server  0.9.2  2         dc1

# 顯示Raft協(xié)議中的節(jié)點(diǎn)信息
consul operator raft list-peers
Node             ID                  Address             State     Voter  RaftProtocol
Node             ID                  Address             State     Voter  RaftProtocol
consul-server01  192.168.41.31:8300  192.168.41.31:8300  leader    true   2
consul-server02  192.168.41.33:8300  192.168.41.32:8300  follower  true   2

這些命令幫助建立了一個高可用、負(fù)載均衡的Consul集群,用于服務(wù)發(fā)現(xiàn)和配置管理。文章來源地址http://www.zghlxwxcb.cn/news/detail-796900.html

到了這里,關(guān)于Docker Consul詳解與部署示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker consul、容器服務(wù)更新與發(fā)現(xiàn)

    Docker consul、容器服務(wù)更新與發(fā)現(xiàn)

    Consul服務(wù)器:192.168.188.17,consul服務(wù),nginx服務(wù),consul-template守護(hù)進(jìn)程 Registrator服務(wù)器:192.168.188.11,registrator容器,nginx容器 建立consul服務(wù)器 mkdir /opt/consul cp consul_0.9.2_linux_amd64.zip /opt/consul cd /opt/consul unzip consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/ 設(shè)置代理 在后臺啟動consul服務(wù)

    2024年01月19日
    瀏覽(29)
  • 容器(第七篇)docker-consul

    容器(第七篇)docker-consul

    consul服務(wù)器: 1. 建立 Consul 服務(wù) mkdir /opt/consul cp consul_0.9.2_linux_amd64.zip /opt/consul cd /opt/consul unzip consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/ //設(shè)置代理,在后臺啟動 consul 服務(wù)端 consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.80.15 -client=0.0.0.0 -node=consul

    2024年02月08日
    瀏覽(23)
  • Docker consul容器服務(wù)自動發(fā)現(xiàn)和更新

    Docker consul容器服務(wù)自動發(fā)現(xiàn)和更新

    目錄 一、什么是服務(wù)注冊與發(fā)現(xiàn)???????? 二、Docker-consul集群 1.Docker-consul 2.registrator 3.Consul-template 三、Docker-consul實現(xiàn)過程 四、Docker-consul集群配置 1.下載consul服務(wù) 2.web服務(wù)器啟動多例nginx容器,使用registrator自動發(fā)現(xiàn) 3.使用nginx做反向代理,使用Consul-template配置自動修改配

    2024年02月10日
    瀏覽(25)
  • 【Docker】Consul的容器服務(wù)更新與發(fā)現(xiàn)

    【Docker】Consul的容器服務(wù)更新與發(fā)現(xiàn)

    服務(wù)注冊與發(fā)現(xiàn)是微服務(wù)架構(gòu)中不可或缺的重要組件。起初服務(wù)都是單節(jié)點(diǎn)的,不保障高可用性,也不考慮服務(wù)的壓力承載,服務(wù)之間調(diào)用單純的通過接口訪問。直到后來出現(xiàn)了多個節(jié)點(diǎn)的分布式架構(gòu),起初的解決手段是在服務(wù)前端負(fù)載均衡,這樣前端必須要知道所有后端服

    2024年02月15日
    瀏覽(23)
  • Docker consul 容器服務(wù)自動發(fā)現(xiàn)和更新

    Docker consul 容器服務(wù)自動發(fā)現(xiàn)和更新

    目錄 一、什么是服務(wù)注冊與發(fā)現(xiàn) 二、Docker-consul集群 1.Docker-consul consul提供的一些關(guān)鍵特性 2.registrator 3.Consul-template 三、Docker-consul實現(xiàn)過程 以配置nginx負(fù)載均衡為例 先配置consul-agent ,有兩種模式server和client 四、Docker-consul集群配置 下載consul服務(wù) 常用啟動選項 web服務(wù)器啟動多

    2024年02月10日
    瀏覽(22)
  • Docker 之 Consul容器服務(wù)更新與發(fā)現(xiàn)

    Docker 之 Consul容器服務(wù)更新與發(fā)現(xiàn)

    服務(wù)注冊與發(fā)現(xiàn)是微服務(wù)架構(gòu)中不可或缺的重要組件。起初服務(wù)都是單節(jié)點(diǎn)的,不保障高可用性,也不考慮服務(wù)的壓力承載,服務(wù)之間調(diào)用單純的通過接口訪問。直到后來出現(xiàn)了多個節(jié)點(diǎn)的分布式架構(gòu),起初的解決手段是在服務(wù)前端負(fù)載均衡,這樣前端必須要知道所有后端服

    2024年02月15日
    瀏覽(31)
  • Docker consul的容器服務(wù)更新與發(fā)現(xiàn)

    Docker consul的容器服務(wù)更新與發(fā)現(xiàn)

    什么是服務(wù)注冊與發(fā)現(xiàn) 服務(wù)注冊與發(fā)現(xiàn)是微服務(wù)架構(gòu)中不可或缺的重要組件。起初服務(wù)都是單節(jié)點(diǎn)的,不保障高可用性,也不考慮服務(wù)的壓力承載,服務(wù)之間調(diào)用單純的通過接口訪問。直到后來出現(xiàn)了多個節(jié)點(diǎn)的分布式架構(gòu),起初的解決手段是在服務(wù)前端負(fù)載均衡,這樣前端

    2024年02月08日
    瀏覽(22)
  • Docker consul的容器服務(wù)注冊與發(fā)現(xiàn)

    Docker consul的容器服務(wù)注冊與發(fā)現(xiàn)

    nacos(轉(zhuǎn)給微服務(wù))、Eureka和consul一樣,也是服務(wù)注冊與發(fā)現(xiàn) 服務(wù)注冊與發(fā)現(xiàn)是微服務(wù)架構(gòu)中不可或缺的重要組件。起初服務(wù)都是單節(jié)點(diǎn)的,不保障高可用性,也不考慮服務(wù)的壓力承載,服務(wù)之間調(diào)用單純的通過接口訪問。直到后來出現(xiàn)了多個節(jié)點(diǎn)的分布式架構(gòu),起初的解決

    2024年02月11日
    瀏覽(19)
  • Docker-consul容器服務(wù)自動發(fā)現(xiàn)與注冊

    Docker-consul容器服務(wù)自動發(fā)現(xiàn)與注冊

    docker consul 容器的自動發(fā)現(xiàn)與注冊。 什么叫做微服務(wù)(容器)注冊與發(fā)現(xiàn) 是一種分布式管理系統(tǒng),定位服務(wù)的方法。 在傳統(tǒng)架構(gòu)中,應(yīng)用程序之間直連到已知的服務(wù),設(shè)備提供的網(wǎng)絡(luò):ip網(wǎng)絡(luò),基于tcp/ip:端口 由于現(xiàn)代微服務(wù)部署,服務(wù)的動態(tài)性,數(shù)量增加了,傳統(tǒng)的基于

    2024年01月24日
    瀏覽(20)
  • Docker之Consul部署

    Docker之Consul部署

    目錄 引言 一、Consul的簡單介紹 二、Consul的優(yōu)點(diǎn) 三、Consul的下載、安裝和啟動 四、搭建Consul集群 1、Server端部署(192.168.100.3) 2、Client端部署(192.168.100.20) 3、配置template末班自動更新 4、測試訪問代理服務(wù)器 Consul是一套開源的分布式服務(wù)發(fā)現(xiàn)和配置管理系統(tǒng),由HasiCorp公司

    2023年04月16日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包