GCE Ubuntu上的DC/OS [英] DC/OS on GCE Ubuntu

查看:120
本文介绍了GCE Ubuntu上的DC/OS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在实例为ubuntu 16.04实例(包括引导程序节点而不是CentOS 7)的Google Compute Engine上安装DC/OS时,是否有任何链接/文档?

Is there any link/documentation available around installing DC/OS on Google Compute Engine where instances are ubuntu 16.04 instances including the bootstrap node instead of CentOS 7?

目前,我发现的文档如下所示在GCE上使用Ansible和CentOS 7. https://dcos.io/docs/1.7/administration/installing/cloud /gce/

Currently , the documents I find use Ansible and CentOS 7 on GCE as below. https://dcos.io/docs/1.7/administration/installing/cloud/gce/

推荐答案

简短答案:当前不支持基于Debian的发行版(至少不超过DC/OS 1.10).

Short answer: Debian based distributions are currently (at least up to DC/OS 1.10) not supported.

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

Long answer: It's possible, but requires some extra steps.

DC/OS不使用任何RedHat特定功能.最重要的区别可以通过很少的系统二进制文件的符号链接来解决,因为RedHat系统具有不同的路径,并且systemd在服务定义中不支持$PATH变量.您需要执行以下操作:

DC/OS doesn't use any RedHat specific features. Most important differences could be solved by symlinks for few system binaries, as RedHat systems have different paths and systemd doesn't support $PATH variable in service definition. You'll need following:

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
  • systemd with version >=200
  • Docker >=1.6

John Omernik的脚本脚本略有过时,还有 DC/OS Jira 上的讨论.

Slightly outdated scripts from John Omernik, there's also puppet module (I'm the author). For further details see discussion on DC/OS Jira.

下一步是手动DC/OS编译(这听起来很吓人,但实际上很简单). C ++组件(尤其是mesos-slave)依赖于系统库,最好将它们链接到适当的库.

Next step is manual DC/OS compilation (it might sound scary, but actually it's very easy). C++ components (especially mesos-slave) are dependent on system libraries and they'd better be linked to proper libraries.

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

您可以将其复制到引导服务器并提取:

You can copy it to your bootstrap server and extract:

bash dcos_generate_config.sh --genconf

更新genconf/config.yaml后,您可以启动一个容器来提供安装脚本:

after updating genconf/config.yaml you can start a container for serving the installation scripts:

docker run -d -p 9090:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx

在新节点上,只需获取安装脚本:

On a new node simply fetch the installation script:

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等),否则可能还不错.该捆绑软件被提取到每个执行者的目录中,其中包括许多库,例如libmesos.so

Unless you don't want to run packages from DC/OS Universe (like Elastic, Kafka, etc.) that depends on libmesos-bundle, you might be just fine. The bundle is fetched into each executor's directory, it includes numerous libraries, such as 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之间的版本可能(并且将有所不同).您可能会遇到以下错误:

Some libraries might be compatible with your system, but the versions between CentOS and Debian might (and will) differ. You might encounter errors like:

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

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

which will cause that all agent based health checks that use curl won't work, therefore most instances will refuse to start.

这篇关于GCE Ubuntu上的DC/OS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆