DC/OS 在 GCE 上 Ubuntu
DC/OS on GCE Ubuntu
在 Google Compute Engine 上安装 DC/OS 是否有任何 link/documentation 可用,其中实例是 ubuntu 16.04 实例,包括 bootstrap 节点而不是 CentOS 7?
目前,我找到的文档在 GCE 上使用 Ansible 和 CentOS 7,如下所示。
https://dcos.io/docs/1.7/administration/installing/cloud/gce/
简短回答:目前不支持基于 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
有点过时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
)依赖于系统库,最好将它们链接到适当的库。
apt install python3-venv build-essential git
git clone https://github.com/dcos/dcos
./build_local.sh
结果 "image" 将位于:
$HOME/dcos-artifacts/testing/`whoami`/dcos_generate_config.sh
您可以将其复制到您的 bootstrap 服务器并提取:
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
除非您不想 运行 来自 DC/OS Universe(如 Elastic、Kafka 等)依赖于 libmesos-bundle
的软件包,否则您可能没问题。该包被提取到每个执行者的目录中,它包括许多库,例如 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
的基于代理的健康检查将无法工作,因此大多数实例将拒绝启动。
在 Google Compute Engine 上安装 DC/OS 是否有任何 link/documentation 可用,其中实例是 ubuntu 16.04 实例,包括 bootstrap 节点而不是 CentOS 7?
目前,我找到的文档在 GCE 上使用 Ansible 和 CentOS 7,如下所示。 https://dcos.io/docs/1.7/administration/installing/cloud/gce/
简短回答:目前不支持基于 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
有点过时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
)依赖于系统库,最好将它们链接到适当的库。
apt install python3-venv build-essential git
git clone https://github.com/dcos/dcos
./build_local.sh
结果 "image" 将位于:
$HOME/dcos-artifacts/testing/`whoami`/dcos_generate_config.sh
您可以将其复制到您的 bootstrap 服务器并提取:
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
除非您不想 运行 来自 DC/OS Universe(如 Elastic、Kafka 等)依赖于 libmesos-bundle
的软件包,否则您可能没问题。该包被提取到每个执行者的目录中,它包括许多库,例如 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
的基于代理的健康检查将无法工作,因此大多数实例将拒绝启动。