您可以通过使用本地 [Catalog]](https://github.com/mesosphere/universe). 在数据中心安装和运行 DC/OS 服务,无需互联网访问。您可以部署包含所有已认证包的本地 Catalog(基础),或包含所选包的本地 Catalog(高级)。
前提条件:
-
登录到 DC/OS CLI。在 DC/OS Enterprise 上,您必须以具有
dcos:superuser
权限的用户登录。
认证 Catalog 包
本节介绍如何部署包含已认证 Catalog 包的本地 Catalog
-
从终端提示符中,使用以下命令将本地 Catalog 及其服务定义下载到您的本地驱动器。
curl -v https://s3.amazonaws.com/downloads.mesosphere.io/universe/public/local-universe.tar.gz -o local-universe.tar.gz curl -v https://raw.githubusercontent.com/mesosphere/universe/version-3.x/docker/local-universe/dcos-local-universe-http.service -o dcos-local-universe-http.service curl -v https://raw.githubusercontent.com/mesosphere/universe/version-3.x/docker/local-universe/dcos-local-universe-registry.service -o dcos-local-universe-registry.service
-
使用 安全副本 (scp) 将 Catalog 和注册表文件传输到管理节点,在发出以下命令之前将
<master-IP>
替换为管理节点的公共 IP 地址。(您可以在 DC/OS UI 的左上角找到管理节点的公用 IP 地址。)scp local-universe.tar.gz core@<master-IP>:~ scp dcos-local-universe-http.service core@<master-IP>:~ scp dcos-local-universe-registry.service core@<master-IP>:~
-
使用以下命令 SSH 至管理节点。将
<master-IP>
替换为先前命令中使用的 IP 地址。ssh -A core@<master-IP>
-
确认文件已成功复制。
ls
您应该看到以下列出的文件。
dcos-local-universe-http.service dcos-local-universe-registry.service local-universe.tar.gz
-
将注册表文件移动到
/etc/systemd/system/
目录。sudo mv dcos-local-universe-registry.service /etc/systemd/system/ sudo mv dcos-local-universe-http.service /etc/systemd/system/
-
确认文件已成功复制到
/etc/systemd/system/
.ls -la /etc/systemd/system/dcos-local-universe-*
-
将 Catalog 加载到本地 Docker 实例中。这可能需要一些时间才能完成。
sudo docker load < local-universe.tar.gz
-
重新启动
systemd
守护程序。sudo systemctl daemon-reload
-
启用并启动
dcos-local-universe-http
和dcos-local-universe-registry
服务。sudo systemctl enable dcos-local-universe-http sudo systemctl enable dcos-local-universe-registry sudo systemctl start dcos-local-universe-http sudo systemctl start dcos-local-universe-registry
-
使用以下命令确认服务现已启动和运行。
sudo systemctl status dcos-local-universe-http sudo systemctl status dcos-local-universe-registry
##配置多个管理节点
如果您只有一个管理节点,跳转到下面 将本地 Catalog 链接到管理节点。如果您有多个管理节点,请继续执行以下程序。
-
使用以下命令发现所有管理节点的私有 IP 地址。识别现在从列表中通过 SSH 所进入的管理节点的私有 IP 地址。它将与在您的提示中
core@ip-
之后显示的路径匹配,其中连字符变为句号。host master.mesos
-
使用 安全副本 将 Catalog 和注册表文件传输到其他管理节点之一。将
<master-IP>
替换为另一个管理节点的 IP 地址。scp local-universe.tar.gz core@<master-IP>:~ scp /etc/systemd/system/dcos-local-universe-registry.service core@<master-IP>:~ scp /etc/systemd/system/dcos-local-universe-http.service core@<master-IP>:~
-
SSH 至收到这些复制文件的管理节点中
ssh -A core@<master_IP>
-
确认文件已成功复制。
ls
您应该看到以下列出的文件。
dcos-local-universe-http.service dcos-local-universe-registry.service local-universe.tar.gz
-
将注册表文件移动到
/etc/systemd/system/
目录。sudo mv dcos-local-universe-registry.service /etc/systemd/system/ sudo mv dcos-local-universe-http.service /etc/systemd/system/
-
确认文件已成功复制到
/etc/systemd/system/
.ls -la /etc/systemd/system/dcos-local-universe-*
-
将 Catalog 加载到本地 Docker 实例中。这可能需要一些时间才能完成。
sudo docker load < local-universe.tar.gz
-
重新启动 Docker 守护程序。
sudo systemctl daemon-reload
-
启动
dcos-local-universe-http
和dcos-local-universe-registry
服务。sudo systemctl start dcos-local-universe-http sudo systemctl start dcos-local-universe-registry
-
确认服务现已启动和运行。
sudo systemctl status dcos-local-universe-http sudo systemctl status dcos-local-universe-registry
重复本部分操作,直到对所有管理节点完成这一程序。然后继续执行下面的将本地 Catalog 链接到管理节点部分。
将本地 Catalog 链接到管理节点
-
通过键入
exit
或打开新终端提示关闭 SSH 会话。如果有多个管理节点,您可能必须退出多个 SSH 会话。 -
(可选)使用以下命令删除群集对默认 Catalog 的引用。如果要将默认 Catalog 保留在适当位置,只需将本地 Catalog 添加为附加存储库,跳至下一步。您还可以从 DC/OS Web 界面中的 设置 > 包存储库 中删除对默认 Catalog 存储库的引用。
dcos package repo remove Catalog
-
使用以下命令添加对您已添加到每个管理节点的本地 Catalog 的引用。
dcos package repo add local-Catalog http://master.mesos:8082/repo
-
dcos node ssh --master-proxy --mesos-id=<mesos-id>
-
使用以下命令下载 DC/OS 证书副本到本地,并将其设置为可信任。
sudo mkdir -p /etc/docker/certs.d/master.mesos:5000 sudo curl -o /etc/docker/certs.d/master.mesos:5000/ca.crt http://master.mesos:8082/certs/domain.crt sudo systemctl restart docker
-
配置 Apache Mesos 提取程序以信任下载的 Docker 证书。
- 复制证书:
sudo cp /etc/docker/certs.d/master.mesos:5000/ca.crt /var/lib/dcos/pki/tls/certs/docker-registry-ca.crt
- 生成哈希:
cd /var/lib/dcos/pki/tls/certs/ openssl x509 -hash -noout -in docker-registry-ca.crt
- 创建软链接。您需要在公共代理创建
/pki/tls/certs
目录。
sudo ln -s /var/lib/dcos/pki/tls/certs/docker-registry-ca.crt /var/lib/dcos/pki/tls/certs/<hash_number>.0
-
通过键入
exit
或打开新终端提示关闭 SSH 会话。在每个代理节点上重复这些步骤。 -
要验证操作成功,登录 DC/OS Web 界面,单击 Catalog 选项卡。您会看到已认证包列表。安装其中一个包。
常见问题
-
我无法安装 CLI 子命令
包托管于
master.mesos:8082
. 如果您无法从您的 DC/OS CLI 安装解析或连接到master.mesos:8082
,您无法安装 CLI 子命令。如果您可以在管理节点上连接到端口 8082,将其中一个管理节点 IP 添加到/etc/hosts
. -
镜像破损
所有 Catalog 组件都托管在您的群集中,包括镜像。组件由 提供。
master.mesos:8082
. 如果您已经连接到该 IP,您可以将其添加到/etc/hosts
并让镜像工作。 -
我没有看到我在找的包
默认情况下,仅捆绑已认证的包。如果您想获得其他包,请参阅下一节中的说明。
选定的包
先决条件: Git. 在 Unix/Linux 上,查看这些 安装说明.
要部署包含您自己的包集合的本地 Catalog,必须构建自定义本地 Catalog Docker 镜像。
-
克隆 Catalog 存储库:
git clone https://github.com/mesosphere/universe.git --branch version-3.x
-
构建
universe-base
镜像:cd universe/docker/local-universe/ sudo make base
-
构建
mesosphere/universe
Docker 镜像并将其压缩至local-universe.tar.gz
文件。使用DCOS_PACKAGE_INCLUDE
变量指定逗号分隔的包名和版本列表。要最大程度地减少容器尺寸和下载时间,您可以仅选择所需的内容。如果您不使用DCOS_PACKAGE_INCLUDE
变量,所有已认证 Catalog 包都会 。要查看哪些包已获得认证,单击 DC/OS Web 界面中的 目录 选项卡。sudo make DCOS_VERSION=1.13 DCOS_PACKAGE_INCLUDE="cassandra:1.0.25-3.0.10,marathon:1.4.2" local-universe
-
执行 已认证 Catalog 包 中描述的所有步骤。