Rancher通過Aliyun-slb服務對接阿里雲SLB

Nginx 文章 科技 RancherLabs RancherLabs 2017-08-25

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

本文將詳盡演示Rancher如何通過Aliyun-slb服務對接阿里雲SLB。

概要

阿里雲負載均衡(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可以看到相應的應用。

Rancher通過Aliyun-slb服務對接阿里雲SLB

Aliyun-slb安裝

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

名稱:保持默認;

描述:可選;

配置選擇

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

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

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

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

Aliyun SLB配置

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

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

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

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

高級配置保持默認;

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

Rancher通過Aliyun-slb服務對接阿里雲SLB

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

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

示例服務配置

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

1、端口映射

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

2、服務容器標籤

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

負載均衡測試

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

Rancher通過Aliyun-slb服務對接阿里雲SLB

Rancher通過Aliyun-slb服務對接阿里雲SLB

Rancher通過Aliyun-slb服務對接阿里雲SLB

相關推薦

推薦中...