1. 程式人生 > >Rancher通過Aliyun-slb服務對接阿裏雲SLB教程

Rancher通過Aliyun-slb服務對接阿裏雲SLB教程

docker 虛擬機 阿裏雲 負載均衡 教程

概要


阿裏雲負載均衡(Server Load Balancer)是將訪問流量根據轉發策略分發到後端多臺雲服務器(Elastic Compute Service,簡稱 ECS)的流量分發控制服務。


負載均衡服務通過設置虛擬服務地址,將位於同一地域的多臺ECS實例虛擬成一個高性能、高可用的應用服務池;再根據應用指定的方式,將來自客戶端的網絡請求分發到雲服務器池中。負載均衡服務是ECS面向多機方案的一個配套服務,需要同ECS結合使用。


負載均衡服務會檢查雲服務器池中ECS實例的健康狀態,自動隔離異常狀態的ECS實例,從而解決了單臺ECS實例的單點問題,提高了應用的整體服務能力。在標準的負載均衡功能之外,負載均衡服務還具備TCP與HTTP抗DDoS攻擊的特性,增強了應用服務的防護能力。


此篇文章中,我將演示Rancher如何通過Aliyun-slb服務對接阿裏雲SLB 。Rancher的安裝這裏就不再敘述,具體安裝方法可參照部署文檔http://rancher.com/docs/rancher/v1.6/en/ 或觀看在線培訓。以下文章基於一套已經搭建好的Rancher系統。


Aliyun-SLB應用原理


首先,我們需要在阿裏雲SLB頁面創建SLB實例,記錄實例的ID號,然後進入實例創建一條監聽策略,策略中配置了前端端口和後端服務器端口。


按阿裏雲SLB原始的工作方式,需要手動添加有對應端口的服務器到後端服務器池,這樣通過前段端口發來的請求會自動轉發到後端服務器。而通過Aliyun-SLB可以實現自動把對應後端服務器添加到後端服務器池中。


Aliyun-SLB 應用通過API與阿裏雲平臺對接, Rancher中啟動服務時添加一個標簽來表示這個服務需要使用阿裏雲負載均衡,啟動的應用需要映射宿主機端口。 Aliyun-SLB應用根據創建應用映射的宿主機端口去檢測阿裏雲負載均衡有沒有監聽相應的端口。如果端口檢測通過,那麽Aliyun-SLB會把服務的相關參數傳遞給負載均衡;否則會提示刷新配置失敗,負載均衡沒有監聽某某端口。


Aliyun-SLB 服務安裝


添加Aliyun-SLB應用商店


通過Rancher_server-ip:8080登錄WEB後,在系統管理|系統設置中添加一個自定義商店。


名稱:SLB

地址:https://github.com/niusmallnan/slb-catalog.git

版本:master


保存後,在應用商店|全部 中搜索slb可以看到相應的應用。


技術分享


Aliyun-slb安裝


點擊詳情後進入配置界面:


技術分享


名稱:保持默認;

描述:可選;


配置選擇

SLB Access Key ID: AccessKey管理器中查看;

SLB Secret Access Key:AccessKey管理器中查看;

SLB Region:SLB所在區域。進入SLB首頁後,選中你SLB服務所在的區域,查看瀏覽器的地址。比如,如果是華南區,查看瀏覽器地址


技術分享


那麽cn-shenzhen就是它的區域;


Aliyun VPC ID:VPC ID,進入VPC網絡首頁,找到你ECS綁定的VPC網絡並點擊進去,頁面的中間有一個ID;


技術分享


ECS Private IP Lookup :這個地方需要選擇true,原因後面講解;


最後點擊啟動,等待應用啟動完成。


Aliyun SLB配置


登錄阿裏雲控制臺,進入負載均衡首頁。右上角點擊創建負載均衡,根據需要創建好負載均衡後,如圖:


技術分享


點擊負載均衡名稱進入負載均衡配置界面,點擊左側監聽,接著點擊右上角添加監聽。


如下圖,因為接下來要啟動一個nginx服務來演示,所以這裏前端通過http協議監聽8888端口,後端(ECS服務器)容器映射到8888端口上;


寬帶和調度算法保持默認;


虛擬服務器組:把多個運行相同服務的主機捆綁在一起,這個適用於手動配置SLB,Aliyun SLB動態配置不需要勾選;


高級配置保持默認;


監控檢測中端口設置8888,其他默認;


技術分享技術分享技術分享


其他的保持默認,返回負載均衡列表。


配置好的負載均衡如下圖:


技術分享


因為Aliyun SLB應用動態註冊可用的服務信息到負載均衡實例上,後端服務器這裏就不需要設置。


現在,我們回到前面講到的ECS Private IP Lookup 開關,如果設置沒有打開,ECS服務器的IP地址無法傳遞給負載均衡實例,最後會導致負載均衡實例無法動態獲取到後端服務器。


示例服務配置


接下來創建一個nginx應用棧並創建一個nginx服務。創建服務的時候有幾個地方要設置:


1、端口映射


服務映射到宿主機的端口必須與負載均衡裏面配置的端口相同;


2、服務容器標簽


創建容器的時候需要指定一個標簽:io.rancher.service.external_lb.endpoint=xxxx, 後面的XXXX為創建的負載均衡實例ID,這個ID在負載均衡首頁可以看到。


技術分享技術分享


nginx服務跑起來之後,我們看Aliyun SLB服務的日誌:


技術分享


我起了兩個nginx實例分別運行在兩臺主機上。


技術分享


現在可以正常訪問了。進入負載均衡首頁查看,已經獲取到後端服務器了。


技術分享


負載均衡測試


首先修改nginx默認頁面的內容並刷新,因為默認為輪詢,所以每刷新一次頁面就會變化:


技術分享技術分享


原文來源:Rancher Labs


本文出自 “12452495” 博客,請務必保留此出處http://12462495.blog.51cto.com/12452495/1954116

Rancher通過Aliyun-slb服務對接阿裏雲SLB教程