云原生 / 系统运维

Apache Mesos DCOS v2集群部署

浅时光博客 · 2月6日 · 2023年 · 2.1w 次已读

一、集群环境规划


1、性能和容量指南

建议:

  • 最大程度地减少主机上的 CPU 和其他资源超额订阅
  • 在计划 DC/OS 主节点的主机上保持 CPU 就绪时间* < 5%

注意:CPU 就绪时间是记录虚拟机准备好使用 CPU 但因为所有 CPU 资源都忙碌而无法安排时间的度量。

2、时间保留指南

tools.syncTime = "0"
time.synchronize.continue = "0"
time.synchronize.restore = "0"
time.synchronize.resume.disk = "0"
time.synchronize.shrink = "0"
time.synchronize.tools.startup = "0"
time.synchronize.tools.enable = "0"
time.synchronize.resume.host = "0"

DC/OS 群集需要节点之间的强大时间同步,以实现最佳功能。请检查您的 DC/OS 群集上 NTP 已启用 ,帮助确保此类强大同步。

建议:

3、硬件前提条件

  • 硬件前提条件是单个 bootstrap 节点、Mesos 管理节点和 Mesos 代理节点。

3.1:bootstrap 节点

  • DC/OS 装置在一个 bootstrap 节点 上运行,该节点带有两个核心16 GB RAM60 GB HDD
  • bootstrap 节点仅在安装和升级过程中使用,因此没有针对高性能存储或分离挂载点的具体建议。

注意:bootstrap 节点必须与群集节点分开。

3.2:管理节点要求

下表列出了管理节点的硬件要求:

服务器最低推荐
节点数1*3 或 5
处理器4 核4 核
内存32 GB RAM32 GB RAM
硬盘120 GB120 GB
  • * 对于业务关键部署,需要三个管理节点,而不是一个管理节点
  • 磁盘生产环境采用固态硬盘

3.3:代理节点要求

下表显示了代理节点的硬件要求:

服务器最低推荐
节点数16 或更多
处理器2 核2 核
内存16 GB RAM16 GB RAM
硬盘60 GB60 GB

在规划代理节点的内存要求时,应确保代理已配置成可最式程序减少交换空间的使用。建议的最佳实践是优化群集性能并减少潜在资源消耗问题,以尽可能禁用群集中所有代理的内存交换。

二、安装Docker程序


所有节点需要部署安装docker程序

1、安装仓库源

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置阿里仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、安装Docker程序

yum -y install docker-ce

3、配置daemon.json

mkdir /data/docker
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": ["http://hub-mirror.c.163.com","https://a7ye1cuu.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn"],
    "max-concurrent-downloads": 20,
    "max-concurrent-uploads": 10,
    "debug": true,
    "live-restore": true, 
    "data-root": "/data/docker",
    "log-opts": {
      "max-size": "100m",
      "max-file": "5"
    }
}
EOF

4、启动Docker程序

systemctl start docker
systemctl enable docker
systemctl status docker

三、部署前准备工作


1、创建配置目录

  • 在 bootstrap 节点上创建名为 genconf 的目录
[root@bootstrap ~]# mkdir -p genconf

2、创建脚本文件

  1. genconf 目录下创建 ip-detect 脚本文件,在安装 DC/OS 的时候,就是通过它进行找到 Mesos master,Agent 进行自动绑定 5050, 5051 等端口的。很重要
  2. 使用 Mesos 管理节点的路由查找源 IP 地址,然后与该节点通信。
  3. 在本示例中,我们假设 Mesos 管理节点具有 IP 地址 192.168.66.12
文章来源(Source):浅时光博客
[root@bootstrap ~]# cd genconf/
[root@bootstrap genconf]# vim ip-detect
#!/usr/bin/env bash
set -o nounset -o errexit
MASTER_IP="192.168.66.12"
echo $(ip route show to match $MASTER_IP | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | tail -1)


#授予执行权限
[root@bootstrap genconf]# chmod +x ip-detect 
[root@bootstrap genconf]# ./ip-detect 
192.168.66.11

3、创建配置文件

注意:下面中的注释,复制到config.yaml文件中一定要删除,以及不可有空格,不然执行下面的shell脚本会有语法报错

[root@bootstrap genconf]# vim config.yaml
---
agent_list:
- 192.168.66.13    #agent节点IP
bootstrap_url: http://<bootstrap_ip>:80
cluster_name: apache-dcos
exhibitor_storage_backend: static
ip_detect_filename: /genconf/ip-detect
log_directory: /genconf/logs
master_discovery: static
master_list:
- 192.168.66.12     #DNS解析服务器地址
oauth_enabled: 'false'
process_timeout: 10000
resolvers:
- 114.114.114.114
- 8.8.8.8
ssh_port: 22       #ssh协议端口
ssh_user: root     #ssh连接用户

注意点:

以下是config.yaml中必须有的内容

1. agent_list

2. master_list

3.ssh_user

4.exhibitor_storage_backend

5.ip_detect_filename: /genconf/ip-detect

6.bootstrap_url: http://192.168.66.11:80,这种写法是为了master和agent能够访问到bootstrap节点

4、节点免密认证

  • 这里需要实现工作机免密登入到master与agent节点,我这里采用root用户
[root@bootstrap ~]# ssh-keygen -t rsa

[root@bootstrap ~]# ssh-copy-id root@192.168.66.12
[root@bootstrap ~]# ssh-copy-id root@192.168.66.13

#复制工作机SSH_KEY文件到/root/genconf目录下并命名为ssh_key
[root@bootstrap ~]# cp .ssh/id_rsa /root/genconf/ssh_key && chmod 0600 /root/genconf/ssh_key

5、下载安装文件

  • 下载 dcos_generate_config 文件 并将其保存到 bootstrap 节点。此文件用于创建自定义的 DC/OS 构建文件
  • 可在 此处下载最新、稳定、开源的 DC/OS 生成配置文件,或在 [开源项目网站] 中查找旧版文件。
[root@bootstrap ~]# curl -O https://downloads.dcos.io/dcos/stable/dcos_generate_config.sh

四、安装部署操作


1、生成定制化安装程序

  • 在 boo文章来源(Source):浅时光博客tstrap 节点运行 DC/OS 安装工具 shell 脚本,生成自定义 DC/OS 构建文件。安装脚本提取 Docker 容器,该容器使用通用 DC/OS 安装工具文件为群集创建自定义 DC/OS 构建文件。构建文件会输出到 ./genconf/serve/
[root@bootstrap ~]# bash dcos_generate_config.sh
  • 执行完脚本之后,现在的目录结构应类似于,会下载一个dcos-genconf的压缩包:

2、托管 DC/OS 安装包

  • 通过 NGINX Docker 容器托管 DC/OS 安装包。对于 <your-port>,请指定 bootstrap_url 中使用的端口值
[root@bootstrap ~]# docker run -d -p 80:80 -v $PWD/genconf/serve:/usr/share/nginx/html:ro nginx

3、安装Master节点

#SSH 连接到管理节点。
[root@master ~]# ssh root@192.168.66.12

#创建并导航至新目录。
[root@master ~]# mkdir /tmp/dcos && cd /tmp/dcos

#在 NGINX Docker 容器中下载 DC/OS 安装工具,其中 <bootstrap-ip> 和 <your_port> 在 bootstrap_url.中指定
[root@master dcos]# curl -O http://192.168.66.11:80/dcos_install.sh

#运行以下命令,在管理节点上安装 DC/OS
[root@master dcos]# bash dcos_install.sh master

4、安装Agent节点

  • 在每个代理节点上运行以下命令,使用自定义构建文件安装 DC / OS
#SSH 连接到代理节点。
[root@bootstrap ~]# ssh root@192.168.66.13

#创建并导航至新目录。
[root@agent ~]# mkdir /tmp/dcos && cd /tmp/dcos

#在 NGINX Docker 容器中下载 DC/OS 安装工具,其中 <bootstrap-ip> 和 <your_port> 在 bootstrap_url.中指定。
[root@agent dcos]# curl -O http://192.168.66.11:80/dcos_install.sh

运行此命令,在代理节点上安装 DC/OS。您必须将代理节点指定为 公共代理节点 或 专用代理节点

  • 专用代理节点:
[root@agent dcos]# bash dcos_install.sh slave
  • 公共代理节点:
[root@agent dcos]# bash dcos_install.sh slave_public

五、访问Web 界面


访问地址:如果没有问题,则浏览器直接输入master IP地址即可访问到面板界面

  • 更改UI界面语言为中文

以上就是本次文章所有知识点,如果文章对你有帮助就动动你那发财的小手,点个赞留个言,给本站加点热度。谢谢支持!


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/11673.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!