Google compute engine GCE Ubuntu上的DC/OS

Google compute engine GCE Ubuntu上的DC/OS,google-compute-engine,dcos,Google Compute Engine,Dcos,在Google Compute Engine上安装DC/OS时,如果实例是ubuntu 16.04实例,包括引导节点而不是CentOS 7,是否有任何链接/文档可用 目前,我发现的文档在GCE上使用Ansible和CentOS 7,如下所示。 简短回答:目前不支持基于Debian的发行版(至少支持DC/OS 1.10) 长答案:这是可能的,但需要一些额外的步骤 DC/OS不使用任何特定于RedHat的功能。对于一些系统二进制文件,最重要的差异可以通过符号链接解决,因为RedHat系统具有不同的路

在Google Compute Engine上安装DC/OS时,如果实例是ubuntu 16.04实例,包括引导节点而不是CentOS 7,是否有任何链接/文档可用

目前,我发现的文档在GCE上使用Ansible和CentOS 7,如下所示。
简短回答:目前不支持基于Debian的发行版(至少支持DC/OS 1.10)

长答案:这是可能的,但需要一些额外的步骤

DC/OS不使用任何特定于RedHat的功能。对于一些系统二进制文件,最重要的差异可以通过符号链接解决,因为RedHat系统具有不同的路径,并且systemd不支持服务定义中的
$PATH
变量。您将需要以下内容:

sudo apt-get install libcurl3-nss ipset selinux-utils curl unzip bc
sudo ln -s /bin/mkdir /usr/bin/mkdir
sudo ln -s /bin/ln /usr/bin/ln
sudo ln -s /bin/tar /usr/bin/tar
sudo ln -s /bin/rm /usr/bin/rm
sudo ln -s /usr/sbin/useradd /usr/bin/useradd
sudo ln -s /bin/bash /usr/bin/bash
sudo ln -s /sbin/ipset /usr/sbin/ipset
另一项要求是:

  • systemd
    版本
    =200
  • Docker
    >=1.6
有点过时,还有(我是作者)。有关更多详细信息,请参阅上的讨论

下一步是手动DC/OS编译(听起来可能很吓人,但实际上很简单)。C++组件(尤其是代码> MESOS从/<代码>)依赖于系统库,它们最好与适当的库链接。
apt install python3-venv build-essential git
git clone https://github.com/dcos/dcos
./build_local.sh
生成的“图像”将位于:

$HOME/dcos-artifacts/testing/`whoami`/dcos_generate_config.sh
您可以将其复制到引导服务器并提取:

bash dcos_generate_config.sh --genconf
更新
genconf/config.yaml
后,您可以启动一个容器来为安装脚本提供服务:

docker run -d -p 9090:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx
在新节点上,只需获取安装脚本:

rm -rf /tmp/dcos && mkdir /tmp/dcos && cd /tmp/dcos && curl -O http://bootstrap.example.com:9090/dcos_install.sh
bash dcos_install.sh slave
除非您不想运行依赖于
libmesos bundle
的DC/OS Universe(如Elastic、Kafka等)的包,否则您可能不会有问题。bundle被提取到每个executor的目录中,它包括许多库,比如
libmesos.so

... 
-rwxr-xr-x 1 nobody nogroup 55077256 Jun 28 19:50 libmesos-1.4.0.so
-rwxr-xr-x 1 nobody nogroup     1487 Jun 28 19:50 libmesos.la
lrwxrwxrwx 1 nobody nogroup       17 Jun 28 19:50 libmesos.so -> libmesos-1.4.0.so
-rwxr-xr-x 1 nobody nogroup   398264 Jun 28 19:53 libpcre.so.1
-rwxr-xr-x 1 nobody nogroup   121296 Jun 28 19:53 libsasl2.so.3
-rwxr-xr-x 1 nobody nogroup   155744 Jun 28 19:53 libselinux.so.1
-rwxr-xr-x 1 nobody nogroup   454008 Jun 28 19:53 libssl.so.10
-rwxr-xr-x 1 nobody nogroup   999944 Jun 28 19:53 libstdc++.so.6
-rwxr-xr-x 1 nobody nogroup    79000 Jun 28 19:53 libsvn_delta-1.so.0
-rwxr-xr-x 1 nobody nogroup  1820208 Jun 28 19:53 libsvn_subr-1.so.0
-rwxr-xr-x 1 nobody nogroup    20040 Jun 28 19:53 libuuid.so.1
-rwxr-xr-x 1 nobody nogroup    90664 Jun 28 19:53 libz.so.1
drwxr-xr-x 3 nobody nogroup     4096 Jun 28 19:53 mesos
drwxr-xr-x 2 nobody nogroup     4096 Jun 28 19:37 pkgconfig
有些库可能与您的系统兼容,但CentOS和Debian之间的版本可能(并且将)有所不同。您可能会遇到以下错误:

libmesos-bundle/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by curl)

这将导致所有使用
curl
的基于代理的运行状况检查无法工作,因此大多数实例将拒绝启动。

经过大量努力和失败,您的解决方案最终拯救了我。谢谢!