在 slave 上添加 containerizer 设置后无法启动 mesos-slave
Unable to start mesos-slave after adding containerizer setting on slave
我想 运行 docker 容器通过 mesos 集群上的马拉松,所以我使用以下命令在 mesos-slave containerizers 配置中添加了 docker。
echo 'docker,mesos' > /etc/mesos-slave/containerizers
更改 mesos-slave 后它没有启动。我收到错误
Insufficient version of Docker! Please upgrade to >= 1.0.0' in slave logs while restarting: Here below is complete log
May 19 15:24:09 flo-doc-nfr-b2b-27 mesos-slave[18055]: W0519 15:24:04.174897 18055 logging.cpp:81] RAW: Received signal SIGTERM from process 19232 of user 0; exiting
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.360828 19275 logging.cpp:172] INFO level logging started!
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361471 19275 main.cpp:156] Build: 2015-05-05 06:16:58 by root
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361518 19275 main.cpp:158] Version: 0.22.1
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361543 19275 main.cpp:161] Git tag: 0.22.1
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361565 19275 main.cpp:165] Git SHA: d6309f92a7f9af3ab61a878403e3d9c284ea87e0
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: Failed to create a containerizer: Could not create DockerContainerizer: Insufficient version of Docker! Please upgrade to >= 1.0.0
以下是 mesos-slave 的 docker 版本详细信息:
客户:
- 版本:1.11.1
- API版本:1.23
- Go版本:go1.5.4
- Git 提交:5604cbe
- 建成时间:2016 年 4 月 26 日星期二23:20:46
- OS/Arch: linux/amd64
服务器:
- 版本:1.11.1
- API版本:1.23
- Go版本:go1.5.4
- Git 提交:5604cbe
- 建成时间:2016 年 4 月 26 日星期二23:20:46
- OS/Arch: linux/amd64
从机上的 Mesos 版本:
0.22.1
如果我从 slave 中删除 containerizers 配置,那么它工作正常。 Mesos、Marathon、Docker 运行正在作为节点上的服务。
我什至尝试将 mesos 降级到 0.21.1 并将 docker 降级到 1.9.0 但得到同样的错误。
有人可以帮我解决这个问题吗?
谢谢!!
峰会
我认为您需要使用 0.24.1、0.23.1、0.22.2 或 0.21.2 之一,因为 MESOS-2986。
尝试从源代码而不是使用 debs 构建 mesos。 Here 是一个非常简单的教程。
# Install the packages.
sudo apt-get install -qq tar wget openjdk-7-jdk build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev
# Download the source
wget http://www.apache.org/dist/mesos/0.28.1/mesos-0.28.1.tar.gz
tar -zxf mesos-0.28.1.tar.gz
# Build Mesos
cd mesos-0.28.1
mkdir build
cd build
../configure
make -j 8
编辑:
Marathon 需要 libmesos
放置在系统中,因此在从源代码构建 Mesos 后确保使用正确的库。下面摘自 documentation
MESOS_NATIVE_JAVA_LIBRARY: bin/start
searches the common
installation paths, /usr/lib
and /usr/local/lib
, for the Mesos native
library. If the library lives elsewhere in your configuration, set the
environment variable MESOS_NATIVE_JAVA_LIBRARY
to its full path.
For example:
$ MESOS_NATIVE_JAVA_LIBRARY=/Users/bob/libmesos.dylib ./bin/start --master local --zk zk://localhost:2181/marathon
我想 运行 docker 容器通过 mesos 集群上的马拉松,所以我使用以下命令在 mesos-slave containerizers 配置中添加了 docker。
echo 'docker,mesos' > /etc/mesos-slave/containerizers
更改 mesos-slave 后它没有启动。我收到错误
Insufficient version of Docker! Please upgrade to >= 1.0.0' in slave logs while restarting: Here below is complete log
May 19 15:24:09 flo-doc-nfr-b2b-27 mesos-slave[18055]: W0519 15:24:04.174897 18055 logging.cpp:81] RAW: Received signal SIGTERM from process 19232 of user 0; exiting
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.360828 19275 logging.cpp:172] INFO level logging started!
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361471 19275 main.cpp:156] Build: 2015-05-05 06:16:58 by root
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361518 19275 main.cpp:158] Version: 0.22.1
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361543 19275 main.cpp:161] Git tag: 0.22.1
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: I0519 15:24:10.361565 19275 main.cpp:165] Git SHA: d6309f92a7f9af3ab61a878403e3d9c284ea87e0
May 19 15:24:10 flo-doc-nfr-b2b-27 mesos-slave[19275]: Failed to create a containerizer: Could not create DockerContainerizer: Insufficient version of Docker! Please upgrade to >= 1.0.0
以下是 mesos-slave 的 docker 版本详细信息:
客户:
- 版本:1.11.1
- API版本:1.23
- Go版本:go1.5.4
- Git 提交:5604cbe
- 建成时间:2016 年 4 月 26 日星期二23:20:46
- OS/Arch: linux/amd64
服务器:
- 版本:1.11.1
- API版本:1.23
- Go版本:go1.5.4
- Git 提交:5604cbe
- 建成时间:2016 年 4 月 26 日星期二23:20:46
- OS/Arch: linux/amd64
从机上的 Mesos 版本: 0.22.1
如果我从 slave 中删除 containerizers 配置,那么它工作正常。 Mesos、Marathon、Docker 运行正在作为节点上的服务。
我什至尝试将 mesos 降级到 0.21.1 并将 docker 降级到 1.9.0 但得到同样的错误。
有人可以帮我解决这个问题吗?
谢谢!! 峰会
我认为您需要使用 0.24.1、0.23.1、0.22.2 或 0.21.2 之一,因为 MESOS-2986。
尝试从源代码而不是使用 debs 构建 mesos。 Here 是一个非常简单的教程。
# Install the packages.
sudo apt-get install -qq tar wget openjdk-7-jdk build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev
# Download the source
wget http://www.apache.org/dist/mesos/0.28.1/mesos-0.28.1.tar.gz
tar -zxf mesos-0.28.1.tar.gz
# Build Mesos
cd mesos-0.28.1
mkdir build
cd build
../configure
make -j 8
编辑:
Marathon 需要 libmesos
放置在系统中,因此在从源代码构建 Mesos 后确保使用正确的库。下面摘自 documentation
MESOS_NATIVE_JAVA_LIBRARY: bin/start
searches the common installation paths,/usr/lib
and/usr/local/lib
, for the Mesos native library. If the library lives elsewhere in your configuration, set the environment variableMESOS_NATIVE_JAVA_LIBRARY
to its full path.For example:
$ MESOS_NATIVE_JAVA_LIBRARY=/Users/bob/libmesos.dylib ./bin/start --master local --zk zk://localhost:2181/marathon