https://blog.csdn.net/q5934/article/details/82661250

目录

准备工作

开始干活

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")

二、命令sz、rz的使用方法:

rz中的r意为received(接收),输入rz时、意为服务器接收文件,既将文件从本地上传到服务器。

sz中的s意为send(发送),输入sz时、意为服务器要发送文件,既从服务器发送文件到本地,或是说本地从服务器上下载文件。

注:不论是send还是received,动作都是在服务器上发起的。

最好是把发布程序打包成zip 上传,这样不用纠结子文件夹不能上传问题,然后在虚拟机上进行解压。

在 Dockerfile 文件所在目录执行(就是发布程序的根目录):

$ docker build -t hanke/surging:v0.9 .      
    --hanke/surging:v0.9这里的hanke是我的dockerhub 的账号,请根据自己情况进行修改。

//此命令是构建一个本地镜像在docker里面 dockerfile 具体的细节可以参考这个老铁的  Docker Dockerfile 定制镜像

构建好以后执行

$ docker images   //查看本地所有镜像

看到我们的本地镜像后说明镜像已经构建成功过,接下将构建好的镜像上传到 docker hub里面以便使用。

先登录docker hub 执行

$ docker login  --然后输入账号密码登录。
     
    $ 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 网关已经启动成功!!!!

---------------------
作者:X_小狼
来源:CSDN
原文:https://blog.csdn.net/q5934/article/details/82661250
版权声明:本文为博主原创文章,转载请附上博文链接!

surging+CentOS7+docker+rancher2.0 菜鸟部署运行笔记的更多相关文章

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

    准备工作 开发环境  Visual Studio 2017 15.5 运行环境  虚拟机CentOS 7+Docker+Rancher 2.0+Consul+RabbmitMQ 项目下载地址  htt ...

  2. [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  3. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  4. [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]

    ##################    Rancher v2.1.7  +    Kubernetes 1.13.4  ################ ##################### ...

  5. Rancher2.0中部署Longhorn分布式存储实验

    目录 1.简介 2.实验环境 3.应用商店中部署longhorn 4.创建工作负载,使用longhorn存储 5.查看longhorn UI 6.注意事项 1.简介: Longhorn是Rancher ...

  6. Centos7安装Docker 基于Dockerfile 搭建httpd运行环境

    Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ...

  7. 在CentOS7下从0开始搭建docker并发布tomcat项目

    一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...

  8. centos7 安装部署运行 Redis5

    原文:centos7 安装部署运行 Redis5 Redis5 下载与解压(官网: https://redis.io/download ) 下载命令:wget http://download.redi ...

  9. 将asp.net core2.0项目部署在IIS上运行

    原文:将asp.net core2.0项目部署在IIS上运行 前言:  与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...

随机推荐

  1. hdu 4445 Crazy Tank

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  2. 巧妙利用jQuery和PHP打造类似360安全卫士防火墙功能开关(类似iphone界面)效果

    安全卫士防火墙开启关闭的开关,可以将此功能应用在产品功能的开启和关闭功能上. 准备工作为了更好的演示本例,我们需要一个数据表,记录需要的功能说明及开启状态,表结构如下: CREATE TABLE `p ...

  3. 【Qt】仿QQ表情选择控件

         表情选择控件在聊天应用中常常要用到,做起来尽管不复杂可是非常繁琐.特别是有些图标须要按顺序排列.每次重做必定是非常费时.所以我将聊天表情选择控件封装成一个独立的类QFaceSelectWid ...

  4. 手写一个自己的LocalCache - 基于LinkedHashMap实现LRU

    功能目标      实现一个全局范围的LocalCache,各个业务点使用自己的Namespace对LocalCache进行逻辑分区.所以在LocalCache中进行读写採用的key为(namespa ...

  5. 自己定义带三角形箭头的TextView

    <?xml version="1.0" encoding="utf-8"? > <resources>      <declare ...

  6. ComboxEdit 重要属性

    DisplayMember="ComboItemName" ValueMember="ComboItemCode"IsTextEditable="Tr ...

  7. GeSHi——通用语法高亮显示

    Examples Category Examples Views ActionScript 2 46173 Ada 3 27881 Apache configuration 2 40029 Apple ...

  8. [Python] 错误“IndentationError: unindent does not match any outer indentation level”是什么意思?

    文本没有对齐,建议打开文本编辑器的Tab显示(我用的Editplus是视图->空白->制表符),看缩进是否合理,调整一致就好了.

  9. (算法)构造MaxTree

    题目: 给定一个没有重复元素的数组A,定义A上的MaxTree如下:MaxTree的根节点为A中最大的数,根节点的左子树为数组中最大数左边部分的MaxTree,右子树为数组中最大数右边部分的MaxTr ...

  10. linux pdb调试总结

    1.首先gdb编译: gcc -g xxx.c -o xxx 2.然后 gdb xxx进入调试 break 行号 加入断点 (1)然后run就能够跑到下一个断点 (2)step(或s)单步跟踪 (3) ...