安装 recurve-agent

Recurve 的数据面(Data Plane)由多个 Worker Hosts 构成,用于运行由控制面(Control Plane)协调的数据任务。

每个 Worker 上都包含一个称为 recurve-agent 的服务,它与控制面通信,并管理 Worker 上的执行环境。设置 Worker 的规则如下:

  • 可设置多个 Workers 以实现横向扩展。

  • Workers 可以安装在不同的网络位置。

  • 专用于某个环境的 Workers 之间必须能够相互通信。因此,建议将相同环境的 Workers 放置在同一局域网络中,以最大程度地稳定连接并降低延迟。

本指南将向您展示如何设置 Recurve Agent。

要求

您的 Worker Hosts 需满足以下要求:

硬件:

根据实际使用情况,您可以参考以下配置范围,以优化Recurve的性能表现。

Worker 数量
CPU(核心数 / Worker)
内存(GB/ Worker)
磁盘(GB/ Worker)

最低配置

1

2

8

20

推荐配置

2+

4

16

100

软件:

  • 操作系统:Linux(已测试 RHEL 和 Ubuntu )。

  • Python:3.9+,建议使用更新版本,并在可行情况下使用虚拟环境。

  • Docker : 20.10.0+,需安装 Docker Compose。

确保运行 Recurve Agent 的用户有权限访问 Docker CLI。可以使用以下命令授予用户权限。在修改用户组后,可能需要注销并重新登录终端会话。

sudo usermod -aG docker $USER 

设置 Recurve Agent

请按照以下步骤进行操作:

  1. 在 Recurve 左侧边栏中,点击“组织/ Organization”图标并选择“环境和 Workers/ Environment & Workers”

  2. 点击“部署 Agent/ Deploy Agent”并按照屏幕上的指示完成 Agent 的部署。

    或者,您也可以按照以下步骤操作。

在命令行界面(CLI)中安装 Recurve Agent
  1. 在 Worker Host 上:安装 Agent 包。

pip install -U recurve-agent

您可以通过运行以下命令来验证安装是否成功: recurve version

  1. 在 Worker Host 上:将 Host 注册到控制面。

recurve login
  1. “环境和 Workers/ Environments & workers”页面中,点击“部署 Agent/ Deploy Agent”,复制API密钥,并粘贴到 Host 上。

  2. 在 Worker Host 上:启动 Agent,Agent 将持续向控制面发送心跳信号。

recurve agent start
  1. 刷新页面以查看新部署的 Host,状态应显示为“在线/ Online”

  2. 将 Agent 分配到环境。

    当 Agent 运行并显示“在线/ Online”状态后,点击“操作/ action”>“加入环境/ Join Environment”,选择要分配的环境。当 Agent 成功加入环境后,您应会看到状态变为“活动中/ Active”

注意事项

  • recurve agent start 命令会在前台启动 Agent ,当终端会话关闭时,Agent 也会终止。对于生产部署,您应让 Agent 在后台运行。更多详细信息,请参考: 在后台运行 Agent

  • devprod 环境必须至少各有一个 Agent 在运行。

Agent 的操作

当 Agent 启动并运行后,您可以执行一些关键操作。

点击 Agent 的 操作/action 按钮即可:

可以执行以下操作:

  • 重启服务:重启 Agent 服务,重启后 Agent 仍会加入环境。

  • 停止服务:停止 Agent 服务, Agent 将变为非活动状态。

  • 离开环境:将 Agent 服务从当前环境中移除。

在后台运行 Agent

有多种方式可以将 Agent 在后台运行,例如,使用 systemdSupervisor 等工具。

systemd
  1. 创建配置文件

创建 /etc/systemd/system/recurve-agent.service 文件,并添加以下内容:

[Unit]
Description=Recurve Agent Service
After=network.target

[Service]
User=<os_user>
Group=<os_user>
ExecStart=/path/to/python/bin/recurve agent start
Restart=on-failure
Environment=PYTHONUNBUFFERED=1
StandardOutput=append:/var/log/recurve/agent.log
StandardError=append:/var/log/recurve/agent.log

[Install]
WantedBy=multi-user.target
  1. 准备日志文件夹和权限

sudo mkdir -p /var/log/recurve
sudo chown <os_user>:<os_user> /var/log/recurve
  1. 启动服务

sudo systemctl daemon-reload
sudo systemctl start recurve-agent
sudo systemctl enable recurve-agent
Supervisor

安装 Supervisor

  1. 安装 Supervisor

# Install on Ubuntu 
sudo apt install supervisor

# Install on CentOS (RHEL)
sudo dnf install supervisor

# or
sudo yum install supervisor
  1. 创建用户组和用户

sudo groupadd supervisor
sudo usermod -aG supervisor $USER
  1. 创建配置文件

安装后,/etc/supervisord.conf 中应该已经有一个配置文件。做一些修改以允许supervisor 中的用户运行访问 supervisord。

[unix_http_server]
file=/run/supervisor/supervisor.sock   ; (the path to the socket file)
chmod=770
chown=root:supervisor
  1. 启用并启动 supervisord

sudo systemctl enable supervisord
sudo systemctl start supervisord

现在,您应该能够运行 supervisorctl (supervisord 的控制命令行界面)。

添加 recurve-agent

  1. 将一个配置文件添加到 /etc/supervisord.d/recurve-agent.ini,其内容如下:

[program:recurve-agent]
command = /path/to/python/bin/recurve agent start
autorestart = true
stopasgroup = true
killasgroup = true
umask = 000
user = <os_user>
redirect_stderr = true
stdout_logfile = /var/log/recurve/agent.log

请注意:

  • command 替换为 recurve 二进制文件的绝对路径。通常是 Python 环境(或虚拟环境)的 bin 文件夹。

  • 替换 user

  • 替换日志路径 stdout_logfile,用户应该具有对该文件夹的写访问权限。

  1. 通过 supervisorctl 管理进程

# Reload config and add/remove as necessary, and will restart affected programs
supervisorctl update

# start, stop, and restart recurve-agent
supervisorctl start recurve-agent
supervisorctl stop recurve-agent
supervisorctl restart recurve-agent

升级 Agent

始终建议保持 Recurve Agent 的更新。

要升级 Agent ,请按照以下步骤操作:

  1. 停止 Agent 服务

    根据您管理服务的方式,您可能需要运行以下命令之一来停止该进程:

# if managed by Systemd
sudo systemctl stop recurve-agent

# if managed by Supervisor
supervisorctl stop recurve-agent
  1. 升级并重新登录

# Upgrade to the latest version
pip install -U recurve-agent

recurve login
  1. 启动 Agent

# if managed by Systemd
sudo systemctl start recurve-agent

# if managed by Supervisor
supervisorctl start recurve-agent

Last updated