Tag: 负载均衡

Docker,nginx和一个服务器上的多个站点

我有服务器与Nginx和一个工作的应用程序。 我想添加几个应用程序到这台服务器。 我想为自己吸取一些东西。 负载平衡器和反向代理之间有什么区别? 我应该在哪种情况下使用第一种,在哪种情况下我应该使用第二种? 如果我的网站是静态的,如果不是静态的,我应该使用什么? 此外,在nginx的几个站点的上下文中听到有关容器的信息将是一个很大的优势

如何防止与领事和gliderlabs /注册人僵尸服务?

我正在使用gliderlabs / registrator容器的领事,向领事展示我的活动容器。 当我快速删除容器时,服务不会从领事中删除,从而导致不再存在的“僵尸”服务。 我听说有gliderlabs /registry容器可以使用额外的选项,以防止这样的 – -cleanup 。 但是,我还没有能够成功地运行任何注册人的这个选项。 这是我目前对我的注册人的docker运行命令: docker run -d -h $(hostname -i) –name registrator1 \ -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator \ consul://$(hostname -i):8500 我需要在这个运行命令中添加什么来让注册者从已经不存在或已经失败的领事手中取出任何容器? 更新:我发现了这个问题 所以我正在使用我的领事集群和注册人一起运行群集。 为了给群集提供故障转移,我在我的consul群集前放置了负载均衡器,并将我的群集和注册器容器连接到负载均衡器的IP地址。 这使得任何领事节点都可以下山,而不会失去群体。 然而,swarm不会将自己注册为服务。 它将每个节点注册为一个密钥值,并且不被绑定到consul集群中的任何节点。 注册到注册人的领事的容器被创build为服务,并绑定到一个领事服务器。 我想现在发生的事情是,当我删除一个容器时,注册人去从领事删除服务,但只有33%的机会击中正确的领事服务器,并删除服务,因为我的LB只是循环。 我所有的swarm master,负载平衡器,领事服务器和swarm worker都在不同的机器上运行。 我的注册人正在我的群工机器上运行。 一切都在容器中运行。 启用粘性负载平衡是解决我的问题的临时修复。 不过,我认为试图在我的群体工作人员身上运行一些types的领事 ,并让注册人自己绑在当地东道主的领事身上。 我相信这可能是在领事github https://github.com/hashicorp/consul/tree/master/bench中描述的“板凳工人”。 我对领事还是比较陌生的,所以我仍然试图把它全部弄清楚。

Dockerdynamic负载均衡与Nginx

我正在做一个专注于Docker的实习,我必须负载平衡一个有客户端,服务器和数据库的应用程序。 我使用Nginx作为负载平衡器,我的目标是根据CPU使用情况dynamic地扩展服务器容器的数量。 例如,如果CPU使用率超过60%,我想在不重新启动Nginx的情况下添加一个新的容器来分配CPU使用率。 我必须修改nginx.conf文件来添加一个新的容器,但我必须重新启动Nginx容器才能应用更改,这是非常缓慢的。 所以我的问题是:是否有一个(免费)的方式dynamic地做到这一点? 告诉我,如果你想要更多的信息,请原谅我可怜的英语。 谢谢。 编辑:我做了@Konstantin阿齐佐夫告诉我: docker cp ./new.conf $(docker ps -f "name=dockerizedrubis_nginx" -q ):/etc/nginx/nginx.conf docker exec $(docker ps -f "name=dockerizedrubis_nginx" -q) bash -c 'kill -HUP $(cat /run/nginx.pid)' docker exec $(docker ps -f "name=dockerizedrubis_nginx" -q) bash -c '/etc/init.d/nginx reload' configuration文件粘贴在支持Nginx的容器中,我发送HUP信号重新configurationNginx进程,然后重新加载以应用我的更改。 没有任何错误,即时重新载入工作正常,但我的新节点不被Nginx考虑,请求仍然只是针对创build的第一个节点… 编辑2:我find了问题的根源。 这似乎是为了在'docker-compose scale'之后更新一个容器的/ etc / hosts,这个容器需要被停止,删除和重新启动。 就我而言,我真的不想停止支持Nginx的容器。 问题:任何人都有一个想法,如何在重新规模后更新容器的/ etc / hosts而不必重新启动容器(在脏脚本旁边)? 谢谢。

如何使用反向代理和负载均衡器为一个虚拟机提供多个站点的可扩展Docker集群

我试图build立一个可扩展的平台,它不仅可以扩展自己,还可以在一个主机(VM)上运行在该平台上的任何其他应用程序。 图 https://github.com/jwilder/nginx-proxy这有一个反向代理,使用该env(环境variables)值将该站点请求(例如hello.example.com)指向docker。 在这个设置中唯一缺less的是能够为每个不同的主机(Web应用程序)启动负载平衡器容器,以便您可以扩展Web应用程序。

集群Docker Swarm主机

这可能是一个简单的问题,但我想知道别人如何做到这一点。 我有一个拥有3个pipe理员的Docker群集模式群集。 让我们说他们有IP的 192.168.1.10 192.168.1.20 192.168.1.30 我可以通过任何IP访问我的Web容器,通过内部路由网等。但是,当主机停下来我访问我的Web容器,我显然不会路由到容器了。 所以我需要某种单一的DNSlogging,或者是指向我的集群中的一个活动地址。 你们怎么做这个? 我应该将所有三个IP作为Alogging添加到DNS? 还是有一个负载均衡器/反向代理的盈亏? 我想有一个以上的解决scheme,很高兴听到别人如何解决这个问题:-) 非常感谢

Haproxy重新加载不同的后端服务器IP

是否有可能重新加载haproxy而后端服务器IP更改? 如果,怎么样? docker堆栈是必不可less的。 在每个部署中,具有不同IP的新容器将replace旧容器。 在我们的实现中,服务偶尔返回503,因为旧haproxy进程没有终止,仍然接受请求,而后端服务器已经不在了。 httplog显示一些请求转发一个后端已经不存在了。 # ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 893 0.0 0.0 0 0 ? Zs 19:39 0:01 [haproxy] <defunct> root 898 0.3 0.0 49416 9640 ? Ss 19:49 0:13 /usr/local/sbin/haproxy -D -f /app/haproxy.cfg -p /var/run/haproxy.pid root 915 0.2 0.0 0 0 ? […]

自动化微服务负载平衡/缩放

现在读几天微服务,我想知道人们如何去实现负载均衡自动化和扩展这些东西? 我有一个特定的想法,我想实现,但不知道是否有可能,或者我正在考虑错误。 所以在这里呢… 假设我有一个名为A,B和C的3个CoreOS机器集群 首先我想要的是透明部署,我可以使用舰队。 然后,我想要检测,当其中一个服务负载巨大,部署另一个实例,并部署了一个和第一个,自动负载平衡的方式,不会中断其他服务正在使用它(stream量从现在起经过负载平衡器)。 另一种方式可能是我手动部署服务的其他版本,然后自动进行负载平衡,并将stream量路由器传输到负载平衡器。 那么最后一个问题,这和Akka集群有什么不同呢?这些与微服务有什么不同呢?