web-dev-qa-db-ja.com

Docker / FigMesos環境のセットアップ

Docker/figMesosクラスターをセットアップしようとしています。 figとDockerは初めてです。 Dockerにはたくさんのドキュメントがありますが、figの操作方法を理解するのに苦労しています。

これが現時点での私のfig.yamlです:

zookeeper:
  image: jplock/zookeeper
  ports: 
  - "49181:2181"
mesosMaster:
  image: mesosphere/mesos:0.19.1
  ports: 
    - "15050:5050"
  links: 
    - zookeeper:zk
  command: mesos-master --zk=zk --work_dir=/var/log --quorum=1
mesosSlave:
  image: mesosphere/mesos:0.19.1
  links: 
    - zookeeper:zk
  command: mesos-slave --master=zk

ありがとう!


編集:

Mark O`Connorの助けを借りて、Dockerベースのメソセットアップ(+ストーム、クロノスなど)を作成しました。

楽しんでください、そしてこれが役に立つと思うなら-貢献してください: https://github.com/yaronr/docker-mesos

PS。マークの答えを+1してください:)

12
JRun

発生したエラーを示していません。

これは、使用しているイメージのドキュメントです。

https://mesosphere.io/downloads/ のMesosphereパッケージを使用するMesosベースのDocker。 Mesosを起動しません。mesos-masterおよびmesos-slaveDockerを使用してください。

これらの画像について私が本当に心配したのは、それらが信頼できず、すぐに入手できるソースがなかったことです。

そこで、中間圏のgithubをインスピレーションとして使用して、例を再作成しました。

更新された例

クロノスフレームワークを含むように更新された例

├── build.sh
├── fig.yml
├── mesos
│   └── Dockerfile
├── mesos-chronos
│   └── Dockerfile
├── mesos-master
│   └── Dockerfile
└── mesos-slave
    └── Dockerfile

ベースイメージをビルドします(一度だけ実行する必要があります)

./build.sh

Figを実行して、各サービスのインスタンスを開始します。

$ fig up -d
Creating mesos_zk_1...
Creating mesos_master_1...
Creating mesos_slave_1...
Creating mesos_chronos_1...

Figの便利な点の1つは、スレーブをスケールアップできることです。

$ fig scale slave=5
Starting mesos_slave_2...
Starting mesos_slave_3...
Starting mesos_slave_4...
Starting mesos_slave_5...

Mesosマスターコンソールには、5つのスレーブが実行されていることが表示されます。

http://localhost:15050/#/slaves

そして、クロノスフレームワークが実行され、タスクを起動する準備ができている必要があります

http://localhost:14400

fig.yml

zk:
  image: mesos
  command: /usr/share/zookeeper/bin/zkServer.sh start-foreground
master:
  build: mesos-master
  ports:
    - "15050:5050"
  links:
    - "zk:zookeeper"
slave:
  build: mesos-slave
  links:
    - "zk:zookeeper"
chronos:
  build: mesos-chronos
  ports:
    - "14400:4400"
  links:
    - "zk:zookeeper"

ノート:

  • この例に必要なzookeeperのインスタンスは1つだけです

build.sh

docker build --rm=true --tag=mesos mesos

mesos/Dockerfile

FROM ubuntu:14.04
MAINTAINER Mark O'Connor <[email protected]>

RUN echo "deb http://repos.mesosphere.io/ubuntu/ trusty main" > /etc/apt/sources.list.d/mesosphere.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
RUN apt-get -y update
RUN apt-get -y install mesos marathon chronos

mesos-master/Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <[email protected]>

EXPOSE 5050

CMD ["--zk=zk://zookeeper:2181/mesos", "--work_dir=/var/lib/mesos", "--quorum=1"]

ENTRYPOINT ["mesos-master"]

mesos-slave/Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <[email protected]>

CMD ["--master=zk://zookeeper:2181/mesos"]

ENTRYPOINT ["mesos-slave"]

mesos-chronos/Dockerfile

FROM mesos
MAINTAINER Mark O'Connor <[email protected]>

RUN echo "zk://zookeeper:2181/mesos" > /etc/mesos/zk

EXPOSE 4400

CMD ["chronos"]

ノート:

  • 「chronos」コマンドラインは、ファイルを使用して構成されます。
27
Mark O'Connor