013 测试 docker swarm 请求分发

1 准备jar包

    写一个简单的springboot项目,提供一个接口,当访问此接口时,返回当前容器IP,还是贴一下代码地址:https://github.com/995586041/jenkins.git

	@RequestMapping("/ip")
	public String getIp() throws UnknownHostException {
		System.out.println("log:------------>ip");
		String ip = InetAddress.getLocalHost().getHostAddress();
		return "您访问的IP是:"+ip;
	}

    打包成jar,假设为 ip.jar 在下面使用

2 制作测试镜像

    现在已经有了jre8基础镜像以及测试jar包,如果没有jre8基础镜像,想办法搞一个,上篇文章有介绍怎么自己制作一个,然后在这个基础上制作出一个新的镜像:

    所需文件:

201150_tlUO_2937605.png

    Dockerfile

FROM jre8
MAINTAINER goldleaf
ADD ./ip.jar /root/ip.jar
# RUN 构建镜像过程中触发 
# CMD 镜像启动后触发
CMD java -jar /root/ip.jar

    制作镜像ipweb

docker build -t ipweb .

    我们是在swarm集群的的某个节点上制作的镜像,当create项目的时候,镜像所在的机器能找到镜像可以正常启动,但是其他节点并没有相应镜像,然后节点就会去仓库找,肯定也是找不到的,所以我们应该经制作好的镜像push到私有仓库里面,然后所有节点去私有仓库pull镜像,这样就可以了

    push镜像到私有仓库:

registry:192.168.20.200        
master:  192.168.20.201  
slave02: 192.168.20.202
slave02: 192.168.20.203
# 重新打tag
docker tag ipweb 192.168.20.200:5000/ipweb
# push到仓库
docker push

3 启动镜像

    3.1 启动:

docker service create -p 8085:8080 --replicas 3 --name ipweb --network central 192.168.20.200:5000/ipweb

    3.2 查看服务

docker service ls

204647_gRHa_2937605.png

docker service ps ipweb

204806_7faw_2937605.png

4 访问测试

    前台访问主节点:http://192.168.20.201:8085/ip,直接在浏览器看返回的IP,需要一直刷,才可能看到不同IP,因为每次请求可能都发到同一个容器里,我这里用python模拟发送http请求:

import requests

url = 'http://192.168.20.201:8083/ip'

n = 0
while n < 30:
    response = requests.get(url)
    print(response.content.decode())
    n = n + 1

结果如下,可以看到请求发送到了不同节点上:

212324_k7Kk_2937605.png

转载于:https://my.oschina.net/u/2937605/blog/1800003

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值