26.4 Mesos配置项解析

Mesos支持在运行时通过命令行参数形式提供的配置项。如果是通过系统服务方式启动,也支持以配置文件或环境变量方式给出。当然,实际上最终是提取为命令行参数传递给启动命令。

Mesos的配置项分为三种类型:通用项(master和slave都支持)、master专属项,以及slave专属项。

Mesos配置项比较多,下面对一些重点配置进行描述。少数为必备项,意味着必须给出配置值;另外一些是可选配置,自己带有默认值。

26.4.1 通用项

通用项数量不多,主要涉及服务绑定地址和日志信息等,参见表26-1。

表26-1 Mesos配置通用项

26.4 Mesos配置项解析 - 图1

26.4.2 master专属项

这些配置项是针对主节点上的Mesos master服务的,围绕高可用、注册信息、对应用框架的资源管理等。用户应该根据本地主节点资源情况来合理地配置这些选项。

用户可以通过mesos-master—help命令来获取所有支持的配置项信息。

必须指定的配置项有三个,其他为可选。参见表26-2。

表26-2 Mesos配置master专属项

26.4 Mesos配置项解析 - 图2

26.4 Mesos配置项解析 - 图3

下面给出一个由三个节点组成的master集群典型配置,工作目录指定为/tmp/mesos,集群名称为mesos_cluster:


  1. mesos_cluster
  2. mesos-master \
  3. --zk=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \
  4. --quorum=2 \
  5. --work_dir=/tmp/mesos \
  6. --cluster=mesos_cluster

26.4.3 slave专属项

slave节点支持的配置项是最多的,因为它所完成的事情复杂。这些配置项既包括跟主节点打交道的一些参数,也包括对本地资源的配置,包括隔离机制、本地任务的资源限制等。

用户可以通过mesos-slave—help命令来获取所有支持的配置项信息。

必备项就一个:—master=VALUE,master所在地址,或对应ZooKeeper服务地址,或文件路径,可以是列表。其他为可选项,参见表26-3。

表26-3 Mesos配置slave专属项

26.4 Mesos配置项解析 - 图4

26.4 Mesos配置项解析 - 图5

26.4 Mesos配置项解析 - 图6

最后6个选项需要配置—with-network-isolator一起使用(编译时需要启用—with-network-isolator参数):

下面给出一个典型的slave配置,容器为Docker,监听在10.0.0.10地址,节点上限制16个CPU、64GB内存,容器的非临时端口范围指定为[31000~32000],临时端口范围指定为[32768~57344],每个容器临时端口最多为512个,并且外出流量限速为50MB/s:


  1. mesos-slave \
  2. --master=zk://10.0.0.2:2181,10.0.0.3:2181,10.0.0.4:2181/mesos \
  3. --containerizers=docker \
  4. --ip=10.0.0.10 \
  5. --isolation=cgroups/cpu,cgroups/mem,network/port_mapping \
  6. --resources=cpus:16;mem:64000;ports:[31000-32000];ephemeral_ports:[32768-57344] \
  7. --ephemeral_ports_per_container=512 \
  8. --egress_rate_limit_per_container=50000KB \
  9. --egress_unique_flow_per_container

为了避免主机分配的临时端口跟我们指定的临时端口范围冲突,需要在主机节点上进行配置:


  1. $ echo "57345 61000" > /proc/sys/net/ipv4/ip_local_port_range

26.4 Mesos配置项解析 - 图7注意

非临时端口是Mesos分配给框架,绑定到任务使用的,端口号往往有明确意义;临时端口是系统分配的,往往不太关心具体端口号。