spring cloud分布式部署docker+rancher

背景:由于spring cloud部署的应用很多,每次重启在虚拟机编写指令需要很多而且每个服务器都需要,解决这一繁琐操作,我们将对应的服务用docker打包,然后rancher运行docker容器,在ranchar图形界面进行操作

1. 首先准备2个环节,分布在linux安装docker,一次执行即可

yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum list docker-ce --showduplicates | sort -r
yum install docker-ce-17.12.0.ce
systemctl start docker
systemctl enable docker

2. 在*1上面安装rancher服务,执行命令,默认安装+运行, 将容器的8080端口 映射到虚拟机8000端口

docker run -d --restart=unless-stopped -p 8000:8080 rancher/server:stable

我们访问一下

3. rancher服务启动好以后,需要物理linux来支持,这就是为什么需要2个linux,在另一个linux,注册相应的服务,供rancher监听,之后rancher会部署到该服务器

将下面的命令在*2服务器执行,就可以将该主机注册到rancher

在*2服务器启动的服务有

如果主机停掉,需要 手动去开启这些服务就可以注册了,本人遇到过哈

 

4. 将spring cloud对应的服务打包成docker,并上传到阿里云

编写Dockerfile

FROM openjdk:8-jre

RUN mkdir /app

COPY iplatform-eureka-1.0.0.jar /app/

CMD java -jar /app/iplatform-eureka-1.0.0.jar

EXPOSE 8761

将jar放在同级目录,执行,docker build -t eureka:latest .   后面有个点哦

首先docker登录,docker login --username=xxxx registry.cn-hangzhou.aliyuncs.com

注册tag,然后push到镜像仓库

docker tag 866b8dc94db6 registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka:1.0
docker push registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka:1.0

这就就将docker打好,然后上传阿里云

5. 在rancher配置镜像地址

添加应用,然后再应用添加各个容器 服务

添加容器服务

这里镜像就是我的阿里云镜像

我们发现会报错,Container should have been running but is in error state. Check logs for more information.: Image [registry.cn-hangzhou.aliyuncs.com/repo_lh/eureka] failed to pull: Error: image repo_lh/eureka:latest not found

是因为我们镜像是需要登录才可以下载的

这里我们就需要在rancher配置镜像库

 

番外:

这个在建立服务的时候才会拉取镜像,如何才能手动去告诉,需要更新镜像,这个后面再说

 

移除, docker rm -f $(sudo docker ps -a)  ,  sudo docker rm -f $(sudo docker ps -qa)可以移除docker容器

如果过程中遇到

ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)

可能是防火墙拦截了,需要将端口开通或者将防火墙关闭

遇到

connection refused暂时没有解决,可能是因为安装了rancher:latest,所以要安装stable稳定版,后面再出现该问题再处理

在部署应用过程中,我们起了2个项目,想要分布在2个虚拟机。而不是随机部署容器。

应用部署到指定主机

首先 在 主机1增加标签

io.rancher.service.requested.host.id  =  1

主机2 增加标签

io.rancher.service.requested.host.id  =  2

 

在部署应用的时候,如果想部署到主机1  则应用标签与1相同即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值