准备工作

开发环境  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 的服务实现,请听下回分解。。。

surging+CentOS7+docker+rancher2.0 入门部署教程的更多相关文章

  1. surging+CentOS7+docker+rancher2.0 菜鸟部署运行笔记

    https://blog.csdn.net/q5934/article/details/82661250 目录 准备工作 开始干活 1.从github 获取surging源码 2.发布Surging. ...

  2. haproxy2.0入门部署教程

    测试后发现,haproxy2.0和之前的版本部署有些许差异,配置文件的写法也是不同的 测试环境:Centos7.3 IP:172.16.1.227 172.16.1.228 部署httpd,页面内容为 ...

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

    ##################    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. [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes

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

  6. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

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

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

  8. DWR 3.0 入门示例教程

    DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a b ...

  9. centos7安装tomcat8 新手入门 图文教程

    系统环境 操作系统:64位CentOS Linux release 7.2.1511 (Core) JDK版本:1.8.0_121 下载tomcat8压缩包 访问官网:http://tomcat.ap ...

随机推荐

  1. 利用UiWatchers 监听解决安卓自动化各种自动化各种非期待弹窗,弹层,升级,广告,对话框,来电等问题

    app自动化时,各种不期待的弹层弹窗,升级广告等时有飞出,由于弹窗具有不定时,不定页面等很多不确定性.有的弹窗很不友好,不×掉,很难进行下一步操作,造成 测试用例失败.而判断是否有弹窗,弹层很麻烦.研 ...

  2. CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin

    安装环境:CentOS 7 1.安装和设置数据库 在CentOS7下,默认安装的数据库为MariaDB,属于MySQL数据库的一个分支,所以我还是使用了MariaDB.安装命令为: [root@loc ...

  3. linux 值安装yum包

    1. 创建文件,挂载  rhel7-repo-iso [root@rhel7 ~]# mkdir /media/rhel7-repo-iso [root@rhel7 ~]# mount /dev/cd ...

  4. 小白看过来runtinme

    RunTime 概述 RunTime消息机制 RunTime交换方法 RunTime消息转发 RunTime关联对象 RunTime实现字典与模型互转 1.RunTime 概述 我们在面试的时候,经常 ...

  5. iOS开发之ReactiveCocoa下的MVVM

    最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的.在之前发表过一篇博文,名字叫做<iOS开发之浅谈MVVM的架构设计与团 ...

  6. 包建强的培训课程(7):iOS企业级开发实战

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. 【设计经验】2、ISE中ChipScope使用教程

    一.软件与硬件平台 软件平台: 操作系统:Windows 8.1 开发套件:ISE14.7 硬件平台: FPGA型号:XC6SLX45-CSG324 二.ChipScope介绍 ChipScope是X ...

  8. Python 爬虫修养-处理动态网页

    Python 爬虫修养-处理动态网页 本文转自:i春秋社区 0x01 前言 在进行爬虫开发的过程中,我们会遇到很多的棘手的问题,当然对于普通的问题比如 UA 等修改的问题,我们并不在讨论范围,既然要将 ...

  9. 站在JAVA数据结构的视角看待简单表结构

    1.前言: 我们提到程序中的集合的时候,往往脑海中会浮现出, 如ArrayList和LinkedList以及和HashMap.当然在提到ArrayList和LinkedList的时候,我们大多数的人都 ...

  10. Java开发环境配置(Jdk、Tomcat、eclipse)

    Java项目通常会在像eclipse这样的集成开发工具上进行高效的开发,开发之前需要进行一系列的安装及配置,会经过以下几个步骤: 1.官网上下载jdk.tomcat.eclipse 2.安装上面下载的 ...