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")
二、命令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服务小集群,嘻嘻
由于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 入门部署教程的更多相关文章
- surging+CentOS7+docker+rancher2.0 菜鸟部署运行笔记
https://blog.csdn.net/q5934/article/details/82661250 目录 准备工作 开始干活 1.从github 获取surging源码 2.发布Surging. ...
- haproxy2.0入门部署教程
测试后发现,haproxy2.0和之前的版本部署有些许差异,配置文件的写法也是不同的 测试环境:Centos7.3 IP:172.16.1.227 172.16.1.228 部署httpd,页面内容为 ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- Rancher2.0中部署Longhorn分布式存储实验
目录 1.简介 2.实验环境 3.应用商店中部署longhorn 4.创建工作负载,使用longhorn存储 5.查看longhorn UI 6.注意事项 1.简介: Longhorn是Rancher ...
- DWR 3.0 入门示例教程
DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a b ...
- centos7安装tomcat8 新手入门 图文教程
系统环境 操作系统:64位CentOS Linux release 7.2.1511 (Core) JDK版本:1.8.0_121 下载tomcat8压缩包 访问官网:http://tomcat.ap ...
随机推荐
- ESP定律学习
ESP = 堆栈平衡 ESP定理脱壳: (1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一 般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) ( ...
- JS自定义鼠标右击菜单
自定义鼠标右击菜单要素: 禁止页面默认右击事件 设置右击菜单的样式以及菜单出现的位置(通过捕获鼠标点击位置来确定菜单的位置) 鼠标在指定控件(区域)上右击时显示菜单(默认菜单隐藏,点击鼠标右键时显示) ...
- Bootstrap3.3.7
页面的布局 <-!不让文字超出左右屏幕--> <style> .demo { word-wrap: break-word; } </style> 他们为那个模板中的 ...
- PHP LDAP 目录协议函数库
在 LDAP 的协议之中,很像硬盘目录结构或倒过来的树状结构.LDAP 的根就是全世界,第一级是属于国别 (countries) 性质的层级,之后可能会有公司 (organization) 的层级,接 ...
- Javascript高级编程学习笔记(22)—— 对象继承
继承是所有面向对象的语言最让人津津乐道的概念 许多面向对象的语言都支持两种实现继承的方式: 1.接口继承 2.实现继承 由于ECMAScript中没有函数签名,所以自然也是不支持接口继承 所以JS中能 ...
- 使用Consul 实现 MagicOnion(GRpc) 服务注册和发现
1.下载打开Consul 笔者是windows下面开发的(也可以使用Docker). 官网下载windows的Consul https://www.consul.io/ 使用cmd窗口打开,输入con ...
- SpringMVC框架一:搭建测试
这里做一个Demo:展示商品列表 新建Dynamic Web Project: 导入jar包,放在lib下: 放入Lib文件夹之后,会自动build path 接下来配置web.xml: <?x ...
- PowerShell 实现批量下载文件
简介 批量文件下载器 PowerShell 版,类似于迅雷批量下载功能,且可以破解 Referer 防盗链 源代码 [int]$script:completed = 0 # 下载完成数量 [int]$ ...
- 描述一下 cookies,sessionStorage 和 localStorage 的区别
cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密),数据会在浏览器和服务器间来回传递.sessionStorage和localStorage不会自 ...
- PythonDay02——编程语言、python介绍以及安装解释器、运行程序的两种方式、变量
一.编程语言 1.1 机器语言:直接用计算机能理解的二进制指令编写程序,直接控制硬件 1.2 汇编语言:用英文标签取代二进制指令去编写程序,本质也是直接控制硬件 1.3 高级语言:用人能理解的表达方式 ...