硬件先决条件是单个 bootstrap 节点、Mesos 管理节点和 Mesos 代理节点。
在安装期间,群集节点是指定的 Mesos 管理节点和代理节点。支持的操作系统和环境列于 版本政策页面。
DC/OS 安装到群集节点上的 /opt/mesosphere
。/opt/mesosphere
目录可在安装 DC/OS 之前创建,但必须是空目录或指向空目录的链接。DC/OS 可以通过在挂载卷上创建空目录,在 /opt/mesosphere
处创建指向空目录的链接,然后安装 DC/OS 的方式,安装在单独的卷挂载上。
下表显示了管理节点的硬件要求:
最低 | 推荐 | |
---|---|---|
节点数 | 1* | 3 或 5 |
处理器 | 4 核 | 4 核 |
内存 | 32 GB RAM | 32 GB RAM |
硬盘 | 120 GB | 120 GB |
* 对于业务关键部署,需要三个管理节点,而不是一个管理节点。
管理节点上有许多混合工作负载。预计持续可用或被视为业务关键的工作负载只能在具有至少三个管理节点的 DC/OS 群集上运行。有关高可用性要求的更多信息,请参阅 高可用性文档。
管理节点上混合工作负载的示例是 Mesos 复制日志和 ZooKeeper。其中部分每隔一段时间需要进行 fsync(),而且可以生成很多非常昂贵的随机 I/O。我们推荐以下内容:
目录路径 | 描述 |
---|---|
/var/lib/dcos |
目录路径 | 描述 |
---|---|
/var/lib/dcos/mesos/master | |
/var/lib/dcos/cockroach | |
/var/lib/dcos/navstar | |
/var/lib/dcos/secrets | |
/var/lib/dcos/exhibitor |
下表显示了代理节点的硬件要求。
最低 | 推荐 | |
---|---|---|
节点数 | 1 | 6 或更多 |
处理器 | 2 核 | 2 核 |
内存 | 16 GB RAM | 16 GB RAM |
硬盘 | 60 GB | 60 GB |
代理节点还必须具有:
带 20 GB 或更多可用空间的 /var
目录。此目录由沙盒同时用于 Docker 和 DC/OS 通用容器运行时。
公共 Docker 存储库或内部 Docker 注册表的网络访问权限。
在 RHEL 7 和 CenTos 7 上,必须停止并禁用 firewalld
。这是一个已知的 Docker 问题,firewalld
与 Docker 的交互不佳。如需更多信息,请参阅 Docker CentOS firewalld 文档。
sudo systemctl stop firewalld && sudo systemctl disable firewalld
禁用 DNSmasq(DC/OS 需要访问端口 53):
sudo systemctl stop dnsmasq && sudo systemctl disable dnsmasq.service
群集的 Mesos 管理节点和代理节点持久信息存储在 var/lib/mesos
目录中。
在您打算使用 DC/OS CLI 的系统上挂载 noexec
可能破坏 CLI 功能,除非 TMPDIR 环境变量设置为 /tmp/
以外的其他值。
如果计划一个拥有数百个代理节点的群集或打算以较高速度部署和删除服务,则建议将此目录隔离到专用固态硬盘存储。
目录路径 | 描述 |
---|---|
/var/lib/mesos/ |
目录路径 | 描述 |
---|---|
/var/lib/mesos/slave/slaves | |
/var/lib/mesos/slave/volumes | |
/var/lib/mesos/docker/store | |
/var/lib/docker |
dcos-mesos-slave
) 使用此端口查找 leader.mesos
。DC/OS 用户与管理节点之间的中介(例如,执行 SSL 终止的反向代理)要求:
建议为 DC/OS 安装使用高速互联网连接。DC/OS 服务需要每秒至少 10 MBit。如果工件下载时间超过文件 /opt/mesosphere/etc/mesos-slave-common
中 MESOS_EXECUTOR_REGISTRATION_TIMEOUT 的值,某些 DC/OS 服务的安装将失败。MESOS_EXECUTOR_REGISTRATION_TIMEOUT 的默认值为 10 分钟。
Docker 必须安装在所有 bootstrap 和群集节点上。支持的 Docker 版本列于 版本策略页面。
建议
确保 Docker 的 live-restore
设置已禁用。在 Docker 配置文件中,应缺少此项或设置为 false。
不要在 devicemapper
模式下使用 Docker loop-lvm
存储驱动。如需更多信息,请参阅 Docker 和 Device Mapper 存储驱动。
在选择生产存储驱动时,最好是 direct-lvm
模式下的 OverlayFS
或 devicemapper
。如需更多信息,请参阅 Docker 的 选择存储驱动。
使用 systemd
管理 CentOS 上的 Docker。systemd
将启动 Docker 并在它崩溃时帮助重启 Dcoker。
以根用户(带 sudo
)或 docker 用户组中用户的身份,运行 Docker 命令。
分发特定的安装
每个 Linux 系统分发都需要以特定方式安装 Docker:
如需更多信息,请参阅 Docker 的分发特定的安装说明。
要禁用 sudo 密码提示,必须将以下行添加到 /etc/sudoers
文件。
%wheel ALL=(ALL) NOPASSWD: ALL
或者,您也可以作为 root user
执行 SSH。
网络时间协议 (NTP) 必须在所有节点上启用,以便时钟同步。默认情况下,在 DC/OS 启动期间,如果未启用,将会出现错误。您可以通过运行以下一个命令来检查 NTP 是否启用,具体取决于操作系统和配置:
ntptime
adjtimex -p
timedatectl
在安装 DC/OS 之前,您必须确保 bootstrap 节点具备以下前提条件。
下载 dcos_generate_config 文件 并将其保存到 bootstrap 节点。此文件用于创建自定义的 DC/OS 构建文件。请联系销售代表或 sales@mesosphere.com 以访问此文件。Enterprise
下载 dcos_generate_config 文件 并将其保存到 bootstrap 节点。此文件用于创建自定义的 DC/OS 构建文件。Open Source
仅用于生产安装,使用此命令安装 Docker NGINX 镜像:
sudo docker pull nginx
仅对于生产安装,群集节点必须具备以下前提条件。在安装期间,群集节点被指定为 Mesos 管理节点和代理节点。
您必须在群集节点上安装 UnZip、GNU tar 和 XZ Utils 数据压缩实用程序。
在 CentOS7 和 RHEL7 上安装此类实用程序:
sudo yum install -y tar xz unzip curl ipset
在每个群集节点上,遵循以下说明:
要检查当前 SELinux 状态和配置,请运行以下命令:
```bash
sudo sestatus
```
DC/OS 支持以下 SELinux 配置:
disabled
permissive
enforcing
,假定 Loaded policy name
为 targeted
此模式在 CoreOS 上不受支持。要将模式从 enforcing
更改为 permissive
,请运行以下命令:
```bash
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
```
或者,如果 sestatus
显示“当前模式”为 enforcing
,但 Loaded policy name
不是 targeted
,请运行以下命令,将 Loaded policy name
更改为 targeted
:
```bash
sudo sed -i 's/SELINUXTYPE=.*/SELINUXTYPE=targeted/g' /etc/selinux/config
```
添加 nogroup
和 docker
组:
sudo groupadd nogroup &&
sudo groupadd docker
重新启动群集,以使更改生效。
sudo reboot
您必须将 LC_ALL
和 LANG
环境变量设置为 en_US.utf-8
。
有关如何在 Red Hat 中设置这些变量的信息,请参阅 如何在 RHEL 上更改系统区域设置
在 Linux 系统上:
localectl set-locale LANG=en_US.utf8