准備工作
開發環境 Visual Studio 2017 15.5
運行環境 虛擬機CentOS 7+Docker+Rancher 2.0+Consul+RabbmitMQ
項目下載地址 https://github.com/dotnetcore/surging
CentOS 7安裝 Docker教程 https://docs.docker.com/install/linux/docker-ce/centos/
docker 安裝 rancher2.0 官方文檔 https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/basic-environment-configuration/
DockerHub 注冊一個賬號用於管理我們自己的鏡像,rancher里面的鏡像要從這里面下載 https://hub.docker.com/
開始干活
1.從github 獲取surging源碼
將項目拉下來,用VS2017打開生成解決方案,生成沒毛病就繼續下一步,打開 Surging.ApiGateway 項目的Program.cs
接下來打開 Surging.ApiGateway下的 Configs文件夾下的gatewaySettings.json 文件,這個是網關的配置文件下面是重要的兩個配置信息。
2.發布Surging.ApiGateway網關
要把Dockerfile 文件也添加去用於docker build。我這邊是通過SecureCRT 將發布的包上傳到虛擬機上。
一.在使用SecureCRT上傳下載之前需要給服務器安裝lrzsz:
yum -y install lrzsz (注:參數-y中"y"的意思是:當安裝過程提示選擇全部為"yes")
二、命令sz、rz的使用方法:
rz中的r意為received(接收),輸入rz時、意為服務器接收文件,既將文件從本地上傳到服務器。
sz中的s意為send(發送),輸入sz時、意為服務器要發送文件,既從服務器發送文件到本地,或是說本地從服務器上下載文件。
注:不論是send還是received,動作都是在服務器上發起的。
最好是把發布程序打包成zip 上傳,這樣不用糾結子文件夾不能上傳問題,然后在虛擬機上進行解壓。
在 Dockerfile 文件所在目錄執行(就是發布程序的根目錄):
//此命令是構建一個本地鏡像在docker里面 dockerfile 具體的細節可以參考這個老鐵的 Docker Dockerfile 定制鏡像
構建好以后執行
$ docker images //查看本地所有鏡像
看到我們的本地鏡像后說明鏡像已經構建成功過,接下將構建好的鏡像上傳到 docker hub里面以便使用。
先登錄docker hub 執行
3.安裝 consul
我提煉了一下 執行一下命令就行了,做兩個consul服務小集群,嘻嘻
由於docker默認創建容器每次重啟會重新分配容器內部IP,會導致集群的join的IP 鏈接不上從而重啟失敗!
我們設置docker的consul 容器為固定IP
docker network create --subnet=172.25.0.0/16 consulnet --創建自定義網絡類型,並且指定網段
consul 服務端 node1 --請按照順序執行一下命令
consul 服務端 node2
效果如下,里面有兩個節點在里面了
4.安裝rabbitMQ
瀏覽器打開CentOS 7 ip:15672
5.安裝rancher 2.0 (我們嘗個鮮)
瀏覽器打開 CentOS7 IP:80 2.x 是通過https 連接的繼續訪問即可,設置好admin的 密碼登錄進去。
效果圖如下,右下角可以設置為中文
至此環境已經搭建完畢,開始創建surging網關吧,期待ing...
6.創建rancher本地集群,並運行surging網關服務
1.點擊添加集群 選擇
2.設置一個集群名稱 然后一切默認,點擊 下一步 , 主機角色全部勾上 再把命令在docker 里面執行。
初次執行時間有點長需要下載相關鏡像run起來 成功后 ,點擊完成就能看到我們的本機集群了,興奮ing。。
3.創建surging網關服務 ,點擊 default.
點擊啟動,祈禱吧少年。成功啟動效果如下
在瀏覽器 輸入 CentOS7 ip:30000 查看網關界面