docker服务发现——最终测试

简介: 最终测试 首先启动confd,按照前面的命令,去掉onetime参数,放到后台最为守护进程长期运行,确保etcd注册目录修改之后,能准实时生成haproxy的配置文件。 然后在两台slave,一台启动两个nginx容器,一台启动一台,模拟上面的a.abc.com和b.abc.com两个域名。

最终测试

首先启动confd,按照前面的命令,去掉onetime参数,放到后台最为守护进程长期运行,确保etcd注册目录修改之后,能准实时生成haproxy的配置文件。

然后在两台slave,一台启动两个nginx容器,一台启动一台,模拟上面的a.abc.com和b.abc.com两个域名。

docker run -P -v `pwd`/html:/var/www/html -d dockerfile/nginx

这里暴露所有的端口(80和443),然后挂载当前的html目录给该容器,再html目录中创建一个1.html文件,
包含容器id、内部ip、外部ip作为测试。同样启动两个之后,通过master上的etcdctl配置这几个启动的容器:

etcdctl set /services/web/a.abc.com/server1/ip 10.211.55.12
etcdctl set /services/web/a.abc.com/server1/port 49154
etcdctl set /services/web/a.abc.com/server2/ip 10.211.55.12
etcdctl set /services/web/a.abc.com/server2/port 49156
etcdctl set /services/web/b.abc.com/server1/ip 10.211.55.13
etcdctl set /services/web/b.abc.com/server1/port 49154

confd会间歇性检查目录修改状态:

INFO /home/babydragon/haproxy/haproxy.cfg has md5sum c8fb4ae9c10086b9f94cd11d0edecec1 should be 048c844d73c062014c0fd77d9548c47d

2015-02-09T11:42:00+08:00 master confd[3781]: INFO Target config /home/babydragon/haproxy/haproxy.cfg out of sync

2015-02-09T11:42:00+08:00 master confd[3781]: INFO Target config /home/babydragon/haproxy/haproxy.cfg has been updated

然后haproxy被更新:

acl is_a.abc.com hdr(host) -i a.abc.com

acl is_b.abc.com hdr(host) -i b.abc.com



use_backend a.abc.com_cluster if is_a.abc.com

use_backend b.abc.com_cluster if is_b.abc.com



backend a.abc.com_cluster
cookie SERVERID insert indirect nocache

server server1 10.211.55.12:49154 cookie server1 check

server server2 10.211.55.12:49156 cookie server2 check


backend b.abc.com_cluster
cookie SERVERID insert indirect nocache

server server1 10.211.55.13:49154 cookie server1 check

重新启动haproxy的容器(没有配置直接加载haproxy.cfg),查看status页面,两个backend都已经生效。通过curl模拟下:

curl -H "Host: a.abc.com" http://10.211.55.11:49154/1.html

I am a80b37f78259 on 172.17.0.4 (Host: 10.211.55.12)

curl -H "Host: a.abc.com" http://10.211.55.11:49154/1.html

I am 209b20bab7ce on 172.17.0.3 (Host: 10.211.55.12)

由于配置了负载均衡为轮询方式,两次请求被落到了不同的容器上,haproxy正确的将请求分发到了两个容器中。


转载自:https://coolex.info/blog/485.html

目录
相关文章
|
3月前
|
Ubuntu Cloud Native 测试技术
百度搜索:蓝易云【云原生之使用Docker部署ubuntu测试环境】
请注意,以上步骤仅是简单的使用Docker部署Ubuntu测试环境的示例。在实际应用中,您可能需要根据测试需求和应用场景进行更多的配置和优化。同时,在退出容器时,容器并未删除,您可以使用 `docker rm <容器名称>`命令来删除容器。在进行测试时,请谨慎操作,并确保对Docker的使用有一定的了解,以避免不必要的问题。
40 2
|
4月前
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
14天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
34 6
|
1月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
141 3
|
3月前
|
Web App开发 Linux 数据安全/隐私保护
Docker本地部署开源浏览器Firefox并远程访问进行测试
Docker本地部署开源浏览器Firefox并远程访问进行测试
139 1
|
4月前
|
安全 测试技术 持续交付
Docker和容器编排工具的自动化测试:构建可靠的容器化应用
容器化应用程序在现代软件开发中越来越受欢迎,而Docker和容器编排工具如Kubernetes、Docker Compose等的自动化测试是确保应用程序的可靠性和稳定性的关键。本文将深入探讨如何使用自动化测试来验证和验证Docker容器化应用程序,提供丰富的示例代码和详细的指南,以帮助您构建更可靠的容器化应用。
|
4月前
|
NoSQL 测试技术 Redis
Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)
Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)
151 0
|
4月前
|
Linux 数据库 数据安全/隐私保护
猿创征文|Linux centos7下利用docker快速部署SQLserver测试学习环境
猿创征文|Linux centos7下利用docker快速部署SQLserver测试学习环境
80 0
|
4月前
|
监控 测试技术 时序数据库
软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
51 0
|
4月前
|
Linux Nacos 数据库
Linux 通过 Docker 部署 Nacos 2.2.3 服务发现与配置中心
Linux 通过 Docker 部署 Nacos 2.2.3 服务发现与配置中心