目錄 準備工作 開始幹活 1.從github 獲取surging源碼 2.發佈Surging.ApiGateway網關 3.安裝 consul 4.安裝rabbitMQ 5.安裝rancher 2.0 (我們嘗個鮮) 6.創建rancher本地集群,並運行surging網關服務 接來下實現surgi ...
目錄
6.創建rancher本地集群,並運行surging網關服務
準備工作
開發環境 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/
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 文件所在目錄執行(就是發佈程式的根目錄):
1 $ docker build -t hanke/surging:v0.9 . 2 --hanke/surging:v0.9這裡的hanke是我的dockerhub 的賬號,請根據自己情況進行修改。
//此命令是構建一個本地鏡像在docker裡面 dockerfile 具體的細節可以參考這個老鐵的 Docker Dockerfile 定製鏡像
構建好以後執行
$ docker images //查看本地所有鏡像
看到我們的本地鏡像後說明鏡像已經構建成功過,接下將構建好的鏡像上傳到 docker hub裡面以便使用。
先登錄docker hub 執行
1 $ docker login --然後輸入賬號密碼登錄。 2 $ docker push hanke/surging:v0.9 --把鏡像上傳到自己的dockerhub 裡面,登錄docker hub 可以看到自己上傳的鏡像了。
3.安裝 consul
$ docker pull consul --下載consul 鏡像
這位老鐵的consul 服務發現介紹的還行 consul 服務發現 集群 docker 版
我提煉了一下 執行一下命令就行了,做兩個consul服務小集群,嘻嘻
consul 服務端 node1
$ docker run -d --name node1 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}'
\consul agent -server -node=node1 -bootstrap-expect=2 --(這個2 代表集群至少兩個consul伺服器才能正常啟動,我們暫且就弄兩個吧)
$ JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"
consul 服務端 node2
$ docker run -d --name node2 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}'
\consul agent -server -node=node2 -join $JOIN_IP
consul 客戶端node11 帶UI
$ docker run -d --name node11 -p 8400:8400 -p 8500:8500 -p 8600:53/udp \-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \consul agent -ui -node=node11 -client=0.0.0.0 -join $JOIN_IP
瀏覽器打開 CentOS 7 IP:8500
CentOS 7 查看本機IP
$ ip addr
效果如下,裡面有兩個節點在裡面了
4.安裝rabbitMQ
$ docker pull rabbitmq:3-management --拉取rabbitmq的鏡像,後面不帶management,啟動rabbitmq後是無法打開管理界面的,所以我們要下載帶management插件的rabbitmq. $ docker run -d --name rabbitmq \--publish 5671:5671 \--publish 5672:5672 \--publish 4369:4369 \--publish 25672:25672 \--publish 15671:15671 \--publish 15672:15672 rabbitmq:3-management --這個是使用的預設賬號密碼 guest guest
瀏覽器打開CentOS 7 ip:15672
5.安裝rancher 2.0 (我們嘗個鮮)
$ docker pull rancher/rancher --拉取rancher 2.x 官方文檔 https://rancher.com/docs/rancher/v2.x/en/ $ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest --運行單節點rancher
瀏覽器打開 CentOS7 IP:80 2.x 是通過https 連接的繼續訪問即可,設置好admin的 密碼登錄進去。
效果圖如下,右下角可以設置為中文
至此環境已經搭建完畢,開始創建surging網關吧,期待ing...
6.創建rancher本地集群,並運行surging網關服務
1.點擊添加集群 選擇
2.設置一個集群名稱 然後一切預設,點擊 下一步 , 主機角色全部勾上 再把命令在docker 裡面執行。
初次執行時間有點長需要下載相關鏡像run起來 成功後 ,點擊完成就能看到我們的本機集群了,興奮ing。。
3.創建surging網關服務 ,點擊 default.
點擊啟動,祈禱吧少年。成功啟動效果如下
在瀏覽器 輸入 CentOS7 ip:30000 查看網關界面
接來下實現surging+EF 的服務實現,請聽下回分解。。。
surging官方QQ群:615562965