中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Rancher中怎么利用Traefik構建主動負載均衡

發布時間:2021-08-12 16:44:11 來源:億速云 閱讀:271 作者:Leah 欄目:云計算

Rancher中怎么利用Traefik構建主動負載均衡,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

元數據服務

在Rancher中,我們有一個杰出的內置服務發現系統被稱為Rancher的元數據服務。在Rancher的元數據服務中,我們可以從本機服務或者從其他堆棧或服務獲取信息。Rancher的元數據里有最新的有關什么服務在系統上運行并且位于何處信息。

想為你的服務生成動態配置文件,你需要與Rancher的元數據服務通訊。要做到這一點,可以使用confd與具體的模板。

想了解更多細節,我建議你讀Bill Maxwell的這篇文章:http://rancher.com/introducing-rancher-metadata-service-for-docker/。

負載均衡

Rancher提供了一個內建的負載均衡服務。它是一個容器化的HAProxy,而且它在對外發布你的服務端口非常有用。

這個負載均衡可以在兩種不同的模式下工作。這意味著,它可以在兩種不同的OSI層工作,特別是4層和7層。可是,這意味著什么呢?

第4層

-------------------------------------------------------------------------------------------------------------

您可以發布和提供TCP端口的訪問。你使用這種有點原始的模式給你的服務后端發包,但無法修改端口。在這種模式下,你不能共享端口。這意味著你需要為每個服務發布不同的端口。

 

第7層

-------------------------------------------------------------------------------------------------------------

在這一層,你是在應用層面工作,而且只能發布HTTP(S)端口。在這種模式下,負載均衡可以查看和修改HTTP數據包。你可以檢查,添加或修改HTTP頭文件。在這種模式下,你可以共享相同的發布端口給不同的服務。顯然,負載均衡必須知道如何區分傳入數據包,以便將它們轉發給正確的服務。要做到這一點,你需要定義一個用于檢查傳入HTTP數據包的HTTP頭文件過濾器。一旦匹配成功,請求將會發送給正確的服務。

在這兩種模式下,負載均衡都是以“被動模式”工作。這意味著,一旦你部署一個新的服務,你必須修改負載均衡配置并重新添加服務。顯然,如果你從負載均衡中刪除一個服務,它的配置也會在負載均衡配置中被刪除。

 

主動負載均衡

為了給用戶提供一個更好的選擇,我們已經創建了一個基于Docker標簽和Rancher元數據服務的“主動模式”負載均衡。負載均衡掃描Rancher元數據,并能自行配置,并為已配置特定標簽的服務提供接入。

要獲得這個功能,我們使用Traefik。Traefik是一個可編程的開源負載均衡,用golang編寫。它可與Zookeeper,etcd,Consul等不同的服務發現系統集成。我們做了與Rancher元數據的初步集成。Traefik有一個真正意義上的零宕機時間重載,并實現定義斷路器規則的可能性。要獲取更多信息,請訪問https://traefik.io/。

要使用Traefik,從社區Catalog中選擇它并啟動。使用默認參數,Traefik將在標簽traefik_lb=true的所有主機上運行。暴露用于HTTP服務的主機端口8080以及作為Traefik管理的端口8000。它每60秒刷新配置一次。讓你部署服務時覆蓋所有參數成為可能。

 

一旦服務被部署,您可以訪問管理界面http://host-address:9000

您需要在服務端定義以下標簽來使您的的服務自動暴露給Traefik:

traefik.enable=<true|false>

traefik.domain=<domain name to route rule>

traefik.port=<port to expose throught traefik>

在你的服務中定義一個健康檢查是強制性的要求,因為只有健康的后端才能添加到Traefik。如果你在你的服務中定義traefik.enable=true的標簽,但是服務不具有健康檢查,前端雖然可以被添加到Traefik,而后端只會為空列表。

測試

我們已經寫了一個基本的Web測試服務,使其能夠檢查Traefik服務,并以快速的方式進行測試。這項服務在8080端口公開Web服務。

你可以導入以下docker-compose.yml和rancher-compose.yml來創建一個新的Stack。

docker-compose.yml

web-test:

log_driver:''

labels:

traefik.domain:local

traefik.port:'8080'

traefik.enable:'true'

io.rancher.container.hostname_override:container_name

tty:true

log_opt:{}

image:rawmind/web-test

rancher-compose.yml

web-test:

scale:3

health_check:

port:8080

interval:2000

initializing_timeout:60000

unhealthy_threshold:3

strategy:recreate

response_timeout:2000

request_line:GET"/""HTTP/1.0"

healthy_threshold:2

關于Rancher中怎么利用Traefik構建主動負載均衡問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻栗坡县| 兰考县| 普陀区| 庆元县| 姚安县| 伊川县| 广丰县| 宁海县| 容城县| 三门峡市| 安陆市| 威宁| 大宁县| 新乡县| 鹿泉市| 诏安县| 邵东县| 陈巴尔虎旗| 罗城| 郓城县| 天等县| 额敏县| 宁武县| 启东市| 阜宁县| 瓦房店市| 郸城县| 田东县| 南宁市| 濮阳市| 和龙市| 肇源县| 南雄市| 盐城市| 大同市| 申扎县| 萍乡市| 山阳县| 咸宁市| 白水县| 洛阳市|