surging+CentOS7+docker+rancher2.0 菜鳥部署運行筆記

来源:https://www.cnblogs.com/hankexia/archive/2018/09/12/9637195.html
-Advertisement-
Play Games

目錄 準備工作 開始幹活 1.從github 獲取surging源碼 2.發佈Surging.ApiGateway網關 3.安裝 consul 4.安裝rabbitMQ 5.安裝rancher 2.0 (我們嘗個鮮) 6.創建rancher本地集群,並運行surging網關服務 接來下實現surgi ...


目錄

 

準備工作

開始幹活

1.從github 獲取surging源碼

2.發佈Surging.ApiGateway網關

3.安裝 consul

 4.安裝rabbitMQ

5.安裝rancher 2.0 (我們嘗個鮮)

6.創建rancher本地集群,並運行surging網關服務

接來下實現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")

二、命令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服務小集群,嘻嘻

  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伺服器才能正常啟動,我們暫且就弄兩個吧)
  獲取 node1 的IP
$ 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.

然後點擊​ 

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

 

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

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

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

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

surging官方QQ群:615562965


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 功能簡介 PrintStream 為其他輸出流添加了功能,使它們能夠方便地列印各種數據值表示形式 裝飾器模式中具體的裝飾類 它提供的功能就是便捷的列印各種數據形式 FilterInputStream為裝飾器模式中的抽象角色 簡言之,PrintStream可以快捷的列印輸出各種類型的數據 PrintS ...
  • 30行代碼奉上!(MNIST手寫數字的識別,識別率大約在91%,簡單嘗試的一個程式,小玩具而已) 其中x作為輸入是一個1x768的向量,然後就是經過權重和偏食,就得到10個輸出,然後用softmax()進行預測值的輸出。 此外y_作為真值,要用到一個占位符。 主要用到的tensorflow的函數有 ...
  • 我的GitHub地址:https://github.com/Yuetao1219/lessons WC 項目要求 wc.exe 是一個常見的工具,它能統計文本文件的字元數、單詞數和行數。這個項目要求寫一個命令行程式,模仿已有wc.exe 的功能,並加以擴充,給出某程式設計語言源文件的字元數、單詞數和 ...
  • 註:服務里的timer System.Timers.Timer time=new System.Timers.Timer(); time.Interval = 3000; //設置計時器事件間隔執行時間 time.Elapsed += new System.Timers.ElapsedEventHa ...
  • 為什麼這篇的標題叫“Ocelot簡易教程(二)之快速開始2”呢,因為很多朋友跟我說上一篇“ Ocelot簡易教程(二)之快速開始1”內容太少了,只是簡單介紹Ocelot的一些簡單配置,讓Ocelot能跑起來!所以才有了這篇快速開始2.在這篇文章中,我會一步一步記錄怎麼跑起來一個Ocelot項目,並簡 ...
  • 繼承概念 承用於創建可重用、擴展和修改在其他類中定義的行為的新類 創建一個類的時候,不是要寫全新的數據成員和成員函數,可以指定新的類繼承一個已經存在的類的成員。已有的類稱為基類,新的類稱為派生類 派生類只能有一個直接基類,但一個基類可以有多個直接派生類 例如ClassAnimal派生出ClassMa ...
  • 一、背景 其實就是很簡單的,公司會桌面開發的人員緊缺啊,項目又趕,而我們公司的前端人員人多還厲害(ps:吐槽下,後端的人真的少啊,會桌面開發的更少啊),所以萌生出了使用html+js來構建本地應用程式,但是我們的客戶基本都是製造行業,需要對很多硬體進行交互(IO卡、PLC、串口等等各種),那就勢必還 ...
  • 1.點擊發佈 2.選擇發佈方式,這裡選擇文件系統,並選擇發佈的路徑 3.配置相關參數 4.點擊發佈按鈕 5.發佈成功後文件夾下生成的文件 。。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...