1.1Mesos简介
Mesos是Apache下的开源分布式资源管理框架,它被称为分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发,后在Twitter得到广泛使用。
Mesos-Master:主要负责管理各个framework和slave,并将slave上的资源分配给各个framework。
Mesos-Slave:负责管理本节点上的各个mesos-task,比如:为各个executor分配资源。
Framework:计算框架,如:Hadoop、Spark、Kafaka、ElasticSerach等,通过MesosSchedulerDiver接入Mesos
Executor:执行器,就是安装到每个机器节点的软件,这里就是利用docker的容器来担任执行器的角色。具有启动销毁快,隔离性高,环境一致等特点。
Mesos-Master是整个系统的核心,负责管理接入Mesos的各个framework(由frameworks_manager管理)和slave(由slaves_manager管理),并将slave上的资源按照某种策略分配给framework(由独立插拔模块Allocator管理)。
Mesos-Slave负责接受并执行来自Mesos-master的命令、管理节点上的mesos-task,并为各个task分配资源。Mesos-slave将自己的资源量发送给mesos-master,由mesos-master中的Allocator模块决定将资源分配给哪个framework,当前考虑的资源有CPU和内存两种,也就是说,Mesos-slave会将CPU个数的内存量发送给mesos-master,而用户提交作业时,需要指定每个任务需要的CPU个数和内存。这样:当任务运行时,mesos-slave会将任务放导包含固定资源Linux container中运行,以达到资源隔离的效果。很明显,master存在单点故障问题,为此:Mesos采用了Zookeeper解决该问题。
Framework是指外部的计算框架,如果Hadoop、Mesos等,这些计算框架可通过注册的方式接入Mesos,以便Mesos进行统一管理和资源分配。Mesos要求可接入的框架必须有一个调度模块,该调度器负责框架内部的任务调度。当一个framework想要接入Mesos时,需要修改自己的调度器,以便向Mesos注册,并获取Mesos分配给自己的资源,这样再由自己的调度器将这些资源分配给框架中的任务,也就是说,整个Mesos系统采用了双层调度框架:第一层,由Mesos将资源分配给框架。第二层,框架自己的调度器将资源分配给自己内部的任务。当前Mesos支持三中语言编写的调度器,分别是C++、Java、Python。为了向各种调度器提供统一的接入方式,Mesos内部采用C++实现了一个MesosSchedulerDriver(调度驱动器),framework的调度器可调用该driver中的接口与Mesos-master交互,完成一系列功能(如注册,资源分配等。)
Executor主要用于启动框架内部的task。由于不同的框架,启动task的接口或者方式不同,当一个新的框架要接入mesos时,需要编写一个Executor,告诉Mesos如何启动该框架中的task。为了向各种框架提供统一的执行器编写方式,Mesos内部采用C++实现了一个MesosExecutorDiver(执行器驱动器),framework可通过该驱动器的相关接口告诉Mesos启动task的方式。
整体架构如图1.1-1所示
图1.1-1总体架构
图1.1-1展示了Mesos的重要组成部分,Mesos由一个master进程管理运行着每个客户端节点的slave进程和跑任务的Mesos计算框架。
Mesos进程通过计算框架可以很细致的管理cpu和内存等,从而提供资源。每个资源提供都包含了一个清单(slave ID,resource1:amount1,resource2,amount2,…)master会根据现有的资源决定提供每个计算框架多少资源。例如公平分享或者根据优先级分享。
为了支持不同种的政策,master通过插件机制新增额一个allocation模块使之分配资源更简单方便。
一个计算框架运行在两个组建之上,一个是Scheduler,他是master提供资源的注册中心,另一个是Executor程序,用来发起在slave节点上运行计算框架的任务。master决定给每个计算框架提供多少计算资源,计算框架的调度去选择使用哪种资源。当一个计算框架接受了提供的资源,他会通过Mesos的任务描述运行程序。Mesos也会在相应的slave上发起任务。
资源提供案例,如图1.1-2所示
图1.1-2资源提供案例
下面我带大家一起熟悉图1.1-2的流程步骤
1、slave1报告给master他拥有4核cpu和4G剩余内存,Marathon调用allocation政策模块,告诉slave1计算框架1应该被提供可用的资源。
2、master给计算框架1发送一个在slave上可用的资源描述。
3、计算框架的调度器回复给master运行在slave上两个任务相关信息,任务1需要使用2个CPU,内存1G,任务2需使用1个CPU,2G内存。
4、最后,master发送任务给slave,分配适当的给计算框架执行器,继续发起两个任务(图1.1-2虚线处),因为任有1个CPU和1G内存未分配,allocation模块现在或许提供剩下的资源给计算框架2。
除此之外,当任务完成,新的资源成为空闲时,这个资源提供程序将会重复。
1.2Zookeeper简介
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chuby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
1.2.1Zookeeper角色
Leader(领导者):负责投票发起和决议,更新系统状态。
follower(跟随者):Follower用于接收客户请求并向客户端返回结果,在选主过程中参与投票。
ObServer(观察者):ObServer可以接受客户端连接,将写请求转发给Leader节点,但ObServer不参加投票过程,只同步Leader的状态,ObServer的目的是为了拓展系统,提高读取速度。
Client(客户端):请求发起方。
1.2.2Zookeeper工作原理
Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和Leader的状态同步以后,回复模式就结束了。状态同步保证了Leader和Server具有相同的系统状态。
为了保证事物的顺序一致性,Zookeeper采用了递增的事物ID号(zxid)来标识事物。所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用来标识Leader关系是否改变,每次一个Leader被选出来,它都会有每一个Server在工作过程中三中状态。
q LOOKING:当前Server不知道Leader是谁,正在搜寻。
q LEADING:当前Server即为选举出来的Leader。
q FOLLOWING:Leader已经选举出来,当前Server与之同步。
1.2.3Zookeeper选举流程
当Leader崩溃或者Leader失去大多数的Follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的Leader,让所有的Server都恢复到一个正确的状态。
ZK的选举算法有两种:
1、基于Basic paxos实现
2、基于fast paxos算法实现
系统默认的选举算法为fast paxos。
1.2.4Zookeeper同步流程
选完Leader以后,zk就进入状态同步过程。
1)Leader等待server连接。
2)Follower连接Leader,将最大的zxid发送给Leader。
3)Leader根据Follower的zxid确定同步点。
4)完成同步后通知Follower已经成为uptodate状态。
5)Follower收到uptodate消息后,又可以重新接受client的请求进行服务。
1.2.5Zookeeper工作流程
Leader三大功能:
1)恢复数据
2)维持与learner的心跳,接收learner请求并判断learner的请求消息类型
3)learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。
PING消息是指Learner的心跳信息;REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;REVALIDATE消息是用来延长SESSION有效时间。
Follower主要四大功能:
1)向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息)。
2)接收Leader消息并进行处理。
3)接收Client的请求,如果为写请求,发送给Leader进行投票。
4)返回Client结果。
Follower的消息循环处理如下几种来自Leader的消息:
1)PING消息:心跳消息。
2)PROPOSAL消息:Leader发起的提案,要求Follower投票。
3)COMMIT消息:服务器端最新一次提案的信息。
4)UPTODATE消息:表明同步完成。
5)REVALIDATE消息:根据Leader的REVALIDATE结果,关闭待revalidate的session还是允许其接受消息。
6)SYN消息:返回SYNC结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。
1.3Marathon简介
Marathon是一个Mesos框架,能够支持运行长服务,比如Web应用等。它是集群的分布式init.d能够原样运行任何Linux二进制发布版本,如Tomcat、Play等等。它也是一种私有的PaSS,实现服务的发现,为部署提供REST API服务,有授权和SSL、配置约束,通过HaProxy实现服务发现和负载平衡。
1.4docker集群实践
1.4.1集群环境准备
主机名IP地址(Host-Only)描述
linux-node1.cometh0:192.168.56.11Mesos Master、Mesos Slave、Marathon
linux-node2.cometh0:192.168.56.12Zookeeper、Mesos Slave
备注Zookeeper使用伪分布式不是,也就是一台虚拟机上启动三个不同端口的Zookeeper实例
Linux-node1实践环境
[root@linux-node1 ~]# cat /etc/redhat-release #查看系统版本
CentOS Linux release 7.1.1503 (Core)
[root@linux-node1 ~]# uname -r #查看内核信息
3.10.0-229.el7.x86_64
[root@linux-node1 ~]# getenforce #检测selinux是否关闭
Permissive
[root@linux-node1 ~]# systemctl stop firewalld #关闭firewall防火墙
Linux-node2实践环境
[root@linux-node2 ~]# cat /etc/redhat-release #查看系统版本
CentOS Linux release 7.1.1503 (Core)
[root@linux-node2 ~]# uname -r #查看内核信息
3.10.0-229.el7.x86_64
[root@linux-node2 ~]# getenforce
#检测selinux是否关闭
Permissive
[root@linux-node2 ~]# systemctl stop firewalld #关闭firewall防火墙
1.4.2Zookeeper伪集群安装部署
部署Zookeeper需要java支持, 主流1.7,稳定最新1.8,开发最新1.9,这边选择yum安装即可支持Zookeeper
[root@linux-node2 ~]# yum install -y java #安装java
[root@linux-node2 ~]# cd /usr/local/src/ #进入源码安装目录
[root@linux-node2 src]# wget
http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.8.tar.gz #下载Zookeeper稳定版3.4.8
[root@linux-node2 src]# tar xf zookeeper-3.4.8.tar.gz #解压Zookeeper
[root@linux-node2 src]# mv zookeeper-3.4.8 /usr/local/ #将Zookeeper移动/usr/local/
[root@linux-node2 src]# ln -s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper #给Zookeeper做一个软链接,方便以后升级等操作
1.4.2.1Zookeeper配置文件详解
由于是伪集群的配置方式,B(IP地址)都是一样,所以不同的Zookeeper实例通信端口号不能一样,所以要给它分配不同的端口号。
[root@linux-node2 src]# cd /usr/local/zookeeper/conf/ #进入Zookeeper配置文件目录
[root@linux-node2 conf]# mv zoo_sample.cfg zoo.cfg #重新命名为zoo.cfg
[root@linux-node2 conf]# cat zoo.cfg
tickTime=2000 #Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。
initLimit=10 #Zookeeper的Leader接受客户端(Follower)初始化连接时最长能忍受多个个心跳时间间隔数。当已经超过5个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是5*2000=10秒。
syncLimit=5 #表示Leader与Follower之间发送消息时请求和应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是2*2000=4秒。
dataDir=/tmp/zookeeper #数据存放目录
clientPort=2181 #客户端连接端口
#maxClientCnxns=60 #对于一个客户端的连接数限制,默认是60,但是有的团队将几十个应用全部部署到一台机器上,以方便测试,这样这个数值就会超过。
#autopurge.purgeInterval=1 #指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。
#autopurge.snapRetainCount=3 #这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。
server.A=B:C:D:
A:#代表一个数字,表示这个是几号服务器。
B:#代表服务器的IP地址。
C:#代表服务器与集群中的Leader服务器交换信息的端口。
D:#如果集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
1.4.2.2Zookeeper配置文件修改
由于是伪集群的配置方式,B(IP地址)都是一样,所以不同的Zookeeper实例通信端口号不能一样,所以要给它分配不同的端口号。
[root@linux-node2 conf]# grep ‘^[a-z]’ zoo.cfg #过滤出修改好的配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk1
clientPort=2181
server.1=192.168.56.12:3181:4181
server.2=192.168.56.12:3182:4182
server.3=192.168.56.12:3183:4183
1、创建三个目录来存放Zookeeper的数据
[root@linux-node2 conf]# mkdir -p /data/{zk1,zk2,zk3}
[root@linux-node2 conf]# echo “1” > /data/zk1/myid
[root@linux-node2 conf]# echo “2” > /data/zk2/myid
[root@linux-node2 conf]# echo “3” > /data/zk3/myid
2、生成三份Zookeeper配置文件
[root@linux-node2 conf]# pwd
/usr/local/zookeeper/conf
[root@linux-node2 conf]# cp zoo.cfg zk1.cfg
[root@linux-node2 conf]# cp zoo.cfg zk2.cfg
[root@linux-node2 conf]# cp zoo.cfg zk3.cfg
3、修改zk2、zk3对应的数据存放目录以及端口
[root@linux-node2 conf]# pwd
/usr/local/zookeeper/conf
[root@linux-node2 conf]# sed -i ‘s#zk1#zk2#g’ zk2.cfg
[root@linux-node2 conf]# sed -i ‘s#zk1#zk3#g’ zk3.cfg
[root@linux-node2 conf]# sed -i ‘s#2181#2182#g’ zk2.cfg
[root@linux-node2 conf]# sed -i ‘s#2181#2183#g’ zk3.cfg
1.4.2.3Zookeeper角色查看
1、启动Zookeeper并查看角色
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk1.cfg #启动zk1
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk1.cfg
Starting zookeeper … STARTED
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk2.cfg #启动zk2
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk2.cfg
Starting zookeeper … STARTED
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk3.cfg #启动zk3
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk3.cfg
Starting zookeeper … STARTED
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk1.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk1.cfg
Mode: follower #zk1当前状态Follower
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk2.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk2.cfg
Mode: leader #zk2当前状态Leader
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk3.cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zk3.cfg
Mode: follower #zk3当前状态Follower
2、连接Zookeeper
[root@linux-node2 conf]# /usr/local/zookeeper/bin/zkCli.sh -server 192.168.56.12:2181
1.5Mesos集群部署
安装Mesosphere仓库,需要在Mesos Master和Mesos Slave节点安装
1.5.1Mesos_Master部署
[root@linux-node1 ~]# rpm -ivh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
#node1安装Mesosphere仓库
[root@linux-node1 ~]# yum -y install mesos marathon #安装Mesos和Marathon
[root@linux-node1 ~]# cat /etc/mesos/zk #增加Zookeeper配置
zk://192.168.56.12:2181,192.168.56.12:2182,192.168.56.12:2183/mesos
[root@linux-node1 ~]# systemctl enable mesos-master mesos-slave marathon #加入开机启动Mesos-master slave Marathon
[root@linux-node1 ~]# systemctl start mesos-master mesos-slave marathon #启动Mesos-master slave Marathon
1.5.2Mesos_Slave部署
[root@linux-node2 ~]# rpm -ivh
http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm #node2安装Mesosphere仓库
[root@linux-node2 ~]# yum -y install mesos #安装Mesos
[root@linux-node2 ~]# systemctl start mesos-slave #启动Mesos-slave
1.5.3Mesos_Web界面
访问:http://192.168.56.11:5050如图1.5-1所示
图1.5-1Tasks表格没有任何条目
运行Mesos任务,可以在Web界面查看task如图1.5-2所示
[root@linux-node1 ~]# MASTER=$(mesos-resolve `cat /etc/mesos/zk`)
[root@linux-node1 ~]# mesos-execute –master=$MASTER –name=”cluster-test”–command=”sleep 60″
图1.5-2运行Mesos任务
1.5.4Marathon调用Mesos运行Docker容器
[root@linux-node1 ~]# yum -y install docker #安装Docker
[root@linux-node1 ~]# systemctl enable docker #Docker加入开机自启动
[root@linux-node1 ~]# systemctl start docker #启动Docker容器
[root@linux-node1 ~]# docker pull nginx #pull一个nginx镜像
linux-node1:再所有mesos-slave上增加配置参数,并重启
[root@linux-node1 ~]# echo ‘docker,mesos’ | tee /etc/mesos-slave/containerizers
[root@linux-node1 ~]# systemctl restart mesos-slave #重启Mesos-slave
linux-node2: 再所有mesos-slave上增加配置参数,并重启
[root@linux-node2 ~]# echo ‘docker,mesos’ | tee /etc/mesos-slave/containerizers
[root@linux-node2 ~]# systemctl restart mesos-slave #重启Mesos-slave
通过marathon默认监听8080端口,通过marathon创建项目,如图1.5-3所示
图1.5-3Marathon界面
下面通过Mesos调度,使用marathon来创建一个nginx镜像的Docker容器,Marathon启动时会读取/etc/mesos/zk配置文件,Marathon通过Zookeeper来找到Mesos Master。
Marathon有自己的REST API,我们通过API的方式来创建一个Nginx的Docker容器。首先创建如下的配置文件nginx.json
[root@linux-node1 ~]# cat nginx.json
{
“id”:”nginx”,
“cpus”:0.2,
“mem”:32.0,
“instances”: 1,
“constraints”: [[“hostname”,
“UNIQUE”,””]],
“container”: {
“type”:”DOCKER”,
“docker”: {
“image”: “nginx”,
“network”: “BRIDGE”,
“portMappings”: [
{“containerPort”: 80,
“hostPort”: 0,”servicePort”: 0, “protocol”:
“tcp” }
]
}
}
}
使用curl的方式调用
[root@linux-node1 ~]# curl -X POST
http://192.168.56.11:8080/v2/apps -d @/root/nginx.json -H “Content-type:
application/json”
[root@linux-node1 ~]# docker ps -a #查看通过API和手动创建的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1231814cd679 nginx “nginx -g ‘daemon off” 56 seconds ago Up 55 seconds 443/tcp, 0.0.0.0:31011->80/tcpmesos-16f943e5-be56-4254-858e-6347b89779de-S0.c47be185-eafc-4bd6-b0ca-e13e4536440b
访问Docker随机启动的端口31011,如图1.5-4所示
图1.5-4成功访问Nginx界面
在MarathonWeb界面查看,如图1.5-5所示
图1.5-5MarathonWeb界面查看Nginx已经在运行
在Mesos界面查看,如图1.5-6所示
图1.5-5Mesos界面查看Nginx Tasks
也可以点击Marathon左上角的创建进行创建容器。
注意:这里哪Nginx来举例,注册中心的marathon+mesos+docker集群是不适合用于服务的,也就是说不适合于对外开放端口的。比如说爬虫,因为不开放端口,需要做的仅仅是从队列中取资源,然后处理,存库。
这个仅仅是job的发布管理运行,还有没CI,也就是说持续集成,后期我会发布jenkins+docker+mesos+marathon+git持续集成的方案,如果将代码发布结合DCO框架。
http://www.chinacloud.cn/show.aspx?id=23655&cid=16
相关推荐
本篇文章详细记录了Mesos+Zookeeper+Marathon的Docker管理平台部署过程,可作为线上实操手册,文档可用性已经过验证!有需要的朋友,请拿走。
Marathon+Mesos+Zookeeper+Docker实战,强烈推荐下载学习
2.mater会和已注册、受信任的Framework进行交互,定期将最新的资源情况发送给Framework,当Framework前端有工作需求时,将选择接收资源
部署文档(mesos+zk+marathon).docx
Exhibitor 管理的 ZooKeeper 集群,例如由。 具体来说,您将需要: 用于 ZK 节点发现的 Exhibitor 端点 与 Mesos 节点关联的 ZK 客户端安全组 一个运行 Marathon 框架的 Mesos 集群,例如由 概述 此模板引导 ...
Work with Mesos and Docker Integrate Mesos with Spark and other big data frameworks Use networking features in Mesos for effective communication between containers Configure Mesos for high ...
这个 cloud-init 假设每台机器都运行一个 zookeeper、mesos master、slave 和 marathon。 可以理解的是,这无法扩展。 与其立即与 haproxy 斗争,而且我主要熟悉并且对在 CoreOS 上运行 Deis 最感兴趣,而是使用 ...
mesos-worker-N:Docker和Marathon的Mesos Worker haproxy-1:具有动态配置的HA代理 在vagrant up ,群集即可使用。 Mesos配置为与docker容器一起使用。 所有计算机都使用UFW防火墙,并且只能通过ssh进行访问。 ...
您可以通过docker以独立模式运行和部署此应用,例如: docker run -p 5000:5000 -e ZOOKEEPER_ADDRESS="ip1:2181,ip2:2181,ip3:2181" capgemini/mesos-ui:standalone-$TAG 或使用马拉松运动: 将ZOOKEEPER_ADDRESS...
马拉松磅 Marathon-lb是通过使用应用程序状态来管理HAProxy的工具。 HAProxy是一种快速,高效,经过考验的高可用性负载均衡器,具有许多高级功能,可为许多备受瞩目的网站提供支持。特征无状态设计:不直接依赖任何...
Træfɪk 是一个新型的http反向代理、... 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) ,可以对配置进行自动化、动态的管理. 标签:Traefik
We will look at how to deploy microservices on Mesos and Marathon and will also deploy microservices on Kubernetes. Next, you will implement service discovery and load balancing for your ...
Træfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易... 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) ,可以对配置进行自动化、动态的管理.
它支持多种后台(Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、RestAPI、file…)来自动、动态的刷新配置文件,以实现快速地服务发现。它非常快无需安装其他依赖,通过Go...
它支持多个后端(Docker,Swarm,Kubernetes,Marathon,Mesos,Consul,Etcd,Zookeeper,BoltDB,Rest API,文件…)来自动动态地管理其配置。 安装 $ ansible-galaxy install kibatic.traefik 角色变量 traefik...
http反向代理以及处理的软件在现在虽然是有很多的... 主要功能traefik是一个新型的http反向代理、负载均衡软件,能轻易的部署微服务,它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB
Traefik与您现有的基础架构组件( , , , , , , , 等),并自动进行动态配置。 将Traefik指向协调器应该是您唯一需要的配置步骤。 。 。 。 。 。 。... :warning_selector: 请注意,截至目前,Traefik v1.x的...