前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『中级篇』Docker 水平扩展和负载均衡(40)

『中级篇』Docker 水平扩展和负载均衡(40)

原创
作者头像
IT架构圈
发布2018-07-29 17:22:12
1.8K0
发布2018-07-29 17:22:12
举报
文章被收录于专栏:IT架构圈

Docker Compose 里面的scale 设置服务运行的容器数量。源码地址:https://github.com/limingios/docker中的No.4

#####服务先创建起来

  • 项目路径ls cd flask-redis/ pwd
  • 项目安装sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
代码语言:txt
复制
sudo service docker restart
sudo docker-compose up
代码语言:txt
复制
cd labs/flask-redis/
sudo docker-compose ps
  • scale 命令的使用设置为一个服务启动的容器数量,数量是以这样的参数形式指定的:service=numdocker-compose up --scale web=3 -d

直接报错了。看下源码为什么报错。

  • 修改docker-compose.yml文件ports 去掉。 在试试version: "3" services: redis: image: redis web: build: context: . dockerfile: Dockerfile environment: REDIS_HOST: redis
  • 执行命令一个--scale 容器名=数字,就可以随时让web进行扩展。感觉很方便把!#-d后台运行 sudo docker-compose up -d #启动了2个容器,1个web,1个resdis sudo docker-compose ps #水平扩展给web的容器增加到3个 sudo docker-compose up --scale web=3 -d #启动了4个容器,3个web,1个resdis sudo docker-compose ps

但是问题来了没有暴露到外边的端口都是5000内部端口,所以出来了一个命令负载均衡工具:haproxy

  • haproxyHAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。 其实跟上边的例子很相似,只是把python应用的端口改成了80,使用了一个新的image把80映射到本地的8080。
代码语言:txt
复制
cd lb-scale/
ls
pwd
代码语言:txt
复制
more app.py
image.png
image.png
代码语言:txt
复制
more Dockerfile
代码语言:txt
复制
more docker-compose.yml 
  • docker-compose 安装lbsudo docker-compose up -d #访问下看可以不 curl http://127.0.0.1:8080 sudo docker-compose up --scale web=10 -d curl http://127.0.0.1:8080https://hub.docker.com/r/dockercloud/haproxy/ dockercloud / haproxy 这个是测试学习用的,老铁们只要知道这个东西就可以了,实际项目中,主要用的nginx,到时候我会演示。

个人技术主页:idig8.com

PS:Docker的scale 可以扩展,也可以所有,他们自动来控制的。web=10 可以改成5 其中的6,7,8,9,10就被删除了。


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档