surging+CentOS7+docker+rancher2.0 菜鸟部署运行笔记
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 菜鸟部署运行笔记的更多相关文章
- surging+CentOS7+docker+rancher2.0 入门部署教程
准备工作 开发环境 Visual Studio 2017 15.5 运行环境 虚拟机CentOS 7+Docker+Rancher 2.0+Consul+RabbmitMQ 项目下载地址 htt ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (三)---解决登录kubernets超时和部署测试Pod和Containter[nginx为例]
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- Rancher2.0中部署Longhorn分布式存储实验
目录 1.简介 2.实验环境 3.应用商店中部署longhorn 4.创建工作负载,使用longhorn存储 5.查看longhorn UI 6.注意事项 1.简介: Longhorn是Rancher ...
- Centos7安装Docker 基于Dockerfile 搭建httpd运行环境
Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ...
- 在CentOS7下从0开始搭建docker并发布tomcat项目
一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...
- centos7 安装部署运行 Redis5
原文:centos7 安装部署运行 Redis5 Redis5 下载与解压(官网: https://redis.io/download ) 下载命令:wget http://download.redi ...
- 将asp.net core2.0项目部署在IIS上运行
原文:将asp.net core2.0项目部署在IIS上运行 前言: 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...
随机推荐
- SQL2005,错误 0xc00470fe 数据流任务 产品级别对于 组件“源 - 2009_txt”(1) 而言不足
今天在将txt文件导入MSSQL2005时,出了这个错误,到网上查了一下资料,说是因为没有安装SQL 2005 SP1的原因,所以我就下载了个. 安装后,再次导入数据,OK 没问题了.http://w ...
- Git Submodule使用完整教程
Git Submodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解. 1.对于公共资源各种程序员的处理方式 每个公司的系统都会有一 ...
- 宿主机为linux、windows分别实现VMware三种方式上网(转)
一.VMware三种方式工作原理1 Host-only连接方式 让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于 ...
- AndroidManifest 中android:exported
假设Service等的AndroidManifest中声明为android:exported="false" 则该服务不可以跨进程使用. Permission De ...
- IE11下javascript报堆栈溢出问题的解决
在IE11浏览器下,使用日期函数里面的toLocaleDateString()会报堆栈溢出 不知道是不是跟我的其他相关代码有关,还是就是这个toLocaleDateString()在IE11确实不太一 ...
- JSTL详解(一)
将jstl.jar包导入到工程中 jstldemo1.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/ ...
- webpack打包过滤console.log
在webpack.prod.conf.js里面的plugins里面加上 drop_debugger: true, drop_console: true new webpack.optimize.Ugl ...
- java面试第三天
类和对象: 类:主观抽象,是对象的模板,可以实例化对象----具有相同属性和行为的对象的集合. 习惯上类的定义格式: package xxx; import xxx; public class Xxx ...
- MVC MVP MVVM 图解
1.MVC (1)图解 解释: 视图(View):用户界面. 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下: View 传送指令到 Controll ...
- spring jdbc连接数据库
1.在applicationContext.xml中配置jdbc bean <bean id="dataSource" class="org.springframe ...