Docker Swarm集群中部署Traefik负载均衡器

一、创建单节点的Docker Swarm集群

docker swarm init

二、在Swarm集群中创建一个网络

docker network create --driver=overlay traefik --attachable

三、在Swarm集群中部署traefik负载均衡器服务

docker service create \

--name traefik \

--constraint=node.role==manager \

--publish 80:80 --publish 8080:8080 \

--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \

--network traefik \

traefik \

--docker \

--docker.swarmmode \

--docker.domain=traefik \

--docker.watch \

--web

四、在Swarm集群中分别部署2个容器服务(httpdnginx

#2.1 httpd.abc.com

docker service create \

--name httpd \

--network traefik \

--label "traefik.backend=httpd" \

--label "traefik.enable=true" \

--label "traefik.protocol=http" \

--label "traefik.port=80" \

--label "traefik.frontend.rule=Host:httpd.abc.com" \

httpd

#2.2 nginx.abc.com

docker service create \

--name nginx \

--network traefik \

--label "traefik.backend=nginx" \

--label "traefik.enable=true" \

--label "traefik.protocol=http" \

--label "traefik.port=80" \

--label "traefik.frontend.rule=Host:nginx.abc.com" \

nginx

五、在浏览器中通过域名访问2个网站、查看Traefik UI

#修改Win7客户端电脑的hosts文件C:\Windows\System32\drivers\etc\hosts

#增加2条主机记录:

httpd.abc.com 192.168.3.168

nginx.abc.com 192.168.3.168

http://192.168.3.168:8080

http://httpd.abc.com

http://nginx.abc.com

六、Swarm集群中服务扩容后,再查看Traefik UI

docker service scale httpd=2

docker service scale nginx=3

http://192.168.3.168:8080

附图:

参考链接:

docker swarm模式使用traefik部署服务

http://blog.51cto.com/6764097/2066670

Docker Swarm (mode) cluster

http://docs.traefik.cn/user-guide/swarm-mode

原文地址:https://www.cnblogs.com/rancher-maomao/p/9978377.html

时间: 2024-10-14 05:12:43

Docker Swarm集群中部署Traefik负载均衡器的相关文章

同一个Docker swarm集群中部署多版本的测试环境

先介绍下用到的技术 Docker swarm: Docker官方的集群管理工具,相比kubernetes更加简单,容易入门.https://docs.docker.com/engine/swarm/ Traefik: 一个现代化的反向代理工具,原生支持Docker swarm模式,可以实现swarm的动态代理.https://docs.traefik.io/user-guide/swarm-mode/ 下图展示主要的思路: 在Docker swarm中创建某个测试版本service时,通过设置s

实操教程丨如何在K8S集群中部署Traefik Ingress Controller

注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责. Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给该集群中运行的服务.这与Ingress控制如何将外部流量路由到集群有异曲同工之妙.接下来,我们举一个实际的例子来更清楚的说明Ingress的概念. 首先,想象一下在你的Kubernetes集群中有若干个微服务(小型应用程序之间彼此通信).这些服务能够在集群内部被访问,但我们想让我们的用户从集群外部也

Docker Swarm集群实践——部署篇

最新消息 Docker在上周的DockerCon技术大会上发布了1.12版核心产品Docker Engine,最大的新特性是Docker Swarm已经被整合到了Docker Engine里面而不再是一个单独的工具了,这样就可以更容易的把多个Docker主机组合成一整个规模更大可靠性更高的逻辑单元.Docker的掌舵者 Adrian Mouat相信这种新的集群模式可以大大增强Docker在相关领域的竞争力. 把Docker Swarm整合进Docker Engine是一个重大改进,但它也只是一个

【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障

非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出现 502 或 500 ,当时我们就判断是某个节点出现问题,但无法直接定位出哪个节点,只能依次将一个个节点下线-上线.但是,不走运的是出现问题的节点恰恰是我们最后下线的一个节点.所以,在下线正常节点的过程中,更多的容器被迁移到了问题节点,结果造成更大范围的故障,直到我们下线问题节点,才恢复正常. 自

【赵强老师】Docker Swarm集群的数据持久化

如果Docker Swarm集群中运行了mysql.nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失. 有什么方法可以解决swarm集群中运行的服务能够数据持久化呢?我们可以通过volme.nfs等方法来实现swarm集群应用数据持久化,其实也和docker数据持久化的形式是一样的. 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内. volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步

云计算之路-阿里云上:3个manager节点异常造成 docker swarm 集群宕机

今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪存,班级,园子,短信息,招聘,小组,网摘,新闻,openapi 最近我们刚刚确认我们所有遇到的 docker swarm 不稳定问题都与部分节点的异常状况有关,即使是一直让我们非常头疼的 docker-flow-proxy 路由问题,也是因为路由容器所在的节点出现异常状况,只要通过阿里云控制台重启这

docker swarm英文文档学习-8-在集群中部署服务

Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运行服务容器的镜像名称和标记有多少容器参与服务是否有任何端口暴露给集群之外的客户端当Docker启动时,服务是否应该自动启动重启服务时发生的特定行为(例如是否使用滚动重启)服务可以运行的节点的特征(例如资源约束和位置首选项)有关群模式的概述,请参见 Swarm mode key concepts.有关

Docker Swarm集群部署应用

在Docker Swarm集群部署应用 我们过去使用docker run的命令创建容器, 把前面替换成docker service create就行了. 建议搭建一个registry,为所的docker主机提供镜像下载,否则你需要在每个docker主机本地存在容器镜像. 所以搭建一个私有仓库,由私有仓库提供所需要的镜像, 本实验环境中用node1同时作为registry. 拉取本地私有仓库registry,查看registry镜像 基础环境 全部为CentOS7系统,Docker 版本为1.12

Docker Swarm集群部署实战

基本概念: Swarm介绍:Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in Go, docker_py,docker等)均可以直接与Swarm通信.Swarm几乎全部用Go语言来完成开发,Swarm0.2版本增加了一个新的策略来调度集群中的容器,使得在可