surging+CentOS7+docker+rancher2.0 入門部署教程


准備工作

開發環境  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")

二、命令szrz的使用方法:

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服務小集群,嘻嘻

由於docker默認創建容器每次重啟會重新分配容器內部IP,會導致集群的join的IP 鏈接不上從而重啟失敗!

我們設置docker的consul 容器為固定IP

docker network create --subnet=172.25.0.0/16  consulnet  --創建自定義網絡類型,並且指定網段

 

  consul 服務端 node1  --請按照順序執行一下命令

$ docker run -d --name node1 --net consulnet  --ip 172.25.0.2 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \

  consul agent -server -node=node1 -bootstrap-expect=2 --(這個2 代表集群至少兩個consul服務器才能正常啟動,我們暫且就弄兩個吧,此服務一定要是固定IP 不然下面的join會重啟后因為IP不對兒失敗)
  獲取 node1 的IP
$ JOIN_IP="172.25.0.2"    --node1 的ip 

  consul 服務端 node2

$ docker run -d --name node2 --net consulnet  --ip 172.25.0.3  -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 --net consulnet  --ip 172.25.0.4 -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://www.cnrancher.com/docs/rancher/v2.x/cn/overview/ 

$ 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.

然后點擊​  

鏡像名稱就是 剛剛我們上傳的 鏡像名稱 我的是 hanke/surging:v0.9,請根據自己的鏡像名稱填寫。 

  

  點擊啟動,祈禱吧少年。成功啟動效果如下

 

​  

  

  在瀏覽器 輸入 CentOS7 ip:30000 查看網關界面

 

  

  至此surging 網關已經啟動成功!!!!

  接來下實現surging+EF 的服務實現,請聽下回分解。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM