【问题标题】:Using Weave net in docker-compose file在 docker-compose 文件中使用 Wea​​ve 网络
【发布时间】:2019-04-08 10:13:44
【问题描述】:

我有一个包含 Hadoop、Mesos、Marathon 和 Zookeeper 的 docker 镜像。我将这个镜像分布在三个物理节点之间。为了运行该镜像,我编写了一个包含 Zookeeper、Mesos、Marathon 三个服务的 docker compose。我使用 WEAVE_CIDR 在撰写文件中编织 IP。我为三个服务定义了相同的 IP 编织。当我运行 compose 文件时,Zookeeper 运行良好,但由于重复的 IP 编织,我收到了运行 Mesos 的错误。因此,我尝试将三种服务合并到一项服务中,以便对其中的三项仅使用一个 IP 编织。我的新 docker compose 如下:

 version: '3.7'
 services:
  zookeeper:
    image: hadoop_marathon_mesos_flink_2
    command: bash -c "echo zookeeper;
    /home/zookeeper-3.4.14/bin/zkServer.sh restart;echo mesos;
    sleep 30;/home/mesos-1.7.2/build/bin/mesos-master.sh;
    echo marathon;/home/marathon-1.7.189-48bfd6000/bin/marathon"
    privileged: true
    network_mode: "bridge"
    environment:
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 10
      ZOOKEEPER_SYNC_LIMIT: 5
      WEAVE_CIDR: 10.32.0.1/12
      ZOOKEEPER_SERVERS: 10.32.0.1:2888:3888
      MESOS_CLUSTER: MMM
      LIBPROCESS_IP: 10.32.0.1
      MESOS_QUORUM: 1
      MESOS_LOG_DIR: /var/log/mesos
      MESOS_WORK_DIR: /var/run/mesos
      MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
      HOSTNAME: 10.32.0.1
      MARATHON_ZK: zk://10.32.0.1:2181/marathon
      MARATHON_MASTER: zk://10.32.0.1:2181/mesos
      MESOS_NATIVE_JAVA_LIBRARY: /usr/local/lib/libmesos.so
      MARATHON_HTTP_PORT: 8080
      Mesos_HTTP_PORT: 5050
    expose:
     - 2181
     - 2888
     - 3888
     - 5050
     - 4040
     - 7077
     - 8080
    ports:
     - 2181:2181
     - 2888:2888
     - 3888:3888
     - 5050:5050
     - 4040:4040
     - 7077:7077
     - 8080:8080

 networks:
  default:
    external:
      name: weave

当我运行 docker-compose up 时,Zookeeper 和 Mesos 运行正常;但是马拉松没有跑。我希望 Marathon 在 Mesos 之后运行,但它没有。请任何人告诉我我做错了什么?

任何帮助将不胜感激。

【问题讨论】:

    标签: docker docker-compose mesos marathon weave


    【解决方案1】:

    问题解决了。我在主节点中使用了这个 docker compose 文件。在三个节点中运行 docker compose run weave expose 以打开 Marathon 和 Mesos UI 之前要小心。

     version: '3.7'
     services:
      zookeeper:
       image: hadoop_marathon_mesos_flink_2
       command: >
              sh -c "echo zookeeper && 
              /home/zookeeper-3.4.14/bin/zkServer.sh restart && 
              sleep 30 && /home/mesos-1.7.2/build/bin/mesos-master.sh 
              --ip=10.32.0.1 --hostname=10.32.0.1 --roles=marathon,flink |
             /home/marathon-1.7.189-48bfd6000/bin/marathon --master 10.32.0.1:5050 
             --zk zk://10.32.0.1:2181/marathon --hostname 10.32.0.1 
             --webui_url 10.32.0.1:8080 --logging_level debug"
       privileged: true
       network_mode: "bridge"
       environment:
         WEAVE_CIDR: 10.32.0.1/12
         ZOOKEEPER_SERVER_ID: 1
         ZOOKEEPER_CLIENT_PORT: 2181
         ZOOKEEPER_TICK_TIME: 2000
         ZOOKEEPER_INIT_LIMIT: 10
         ZOOKEEPER_SYNC_LIMIT: 5
         ZOOKEEPER_SERVERS: 10.32.0.1:2888:3888
         MESOS_CLUSTER: MMM
         LIBPROCESS_IP: 10.32.0.1
         MESOS_QUORUM: 1
         MESOS_LOG_DIR: /var/log/mesos
         MESOS_WORK_DIR: /var/run/mesos
         MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
         HOSTNAME: 10.32.0.1
         MESOS_NATIVE_JAVA_LIBRARY: /usr/local/lib/libmesos.so
         MESOS_DOCKER_SOCKET: /var/run/weave/weave.sock
       expose:
        - 2181
        - 2888
        - 3888
        - 5050
        - 4040
        - 7077
        - 8080
       ports:
        - 2181:2181
        - 2888:2888
        - 3888:3888
        - 5050:5050
        - 4040:4040
        - 7077:7077
        - 8080:8080
    
    networks:
     default:
      external:
        name: weave
    

    另外,我在从节点中运行了这个 docker compose:

     version: '3.7'
     services:
       slave:
        image: hadoop_marathon_mesos_flink_2
        command: sh -c "rm -f /var/run/mesos/meta/slaves/latest &&
               /home/mesos-1.7.2/build/bin/mesos-slave.sh --master=10.32.0.1:5050 
             --port=5051 --work_dir=/var/run/mesos  --systemd_enable_support=fa$
             privileged: true
       network_mode: "bridge"
       environment:
         WEAVE_CIDR: 10.32.0.2/12
         MESOS_RESOURCES: ports(*):[11000-11999]
         LIBPROCESS_IP: 10.32.0.2
         MESOS_HOSTNAME: 10.32.0.2
         MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins #also in Dockerfile
         MESOS_LOG_DIR: /var/log/mesos
         MESOS_WORK_DIR: /var/run/mesos
         MESOS_LOGGING_LEVEL: INFO
         MESOS_DOCKER_SOCKET: /var/run/weave/weave.sock
       expose:
        - 5051
       ports:
        - 5051:5051
    
     networks:
      default:
        external:
          name: weave
    

    希望有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2016-07-08
      • 1970-01-01
      • 2019-11-14
      • 2019-10-30
      • 1970-01-01
      相关资源
      最近更新 更多