Recurve 的数据面(Data Plane)由多个 Worker Hosts 构成,用于运行由控制面(Control Plane)协调的数据任务。
每个 Worker 上都包含一个称为 recurve-agent 的服务,它与控制面通信,并管理 Worker 上的执行环境。设置 Worker 的规则如下:
专用于某个环境的 Workers 之间必须能够相互通信。因此,建议将相同环境的 Workers 放置在同一局域网络中,以最大程度地稳定连接并降低延迟。
本指南将向您展示如何设置 Recurve Agent。
要求
您的 Worker Hosts 需满足以下要求:
硬件:
根据实际使用情况,您可以参考以下配置范围,以优化Recurve的性能表现。
Worker 数量
CPU(核心数 / Worker)
内存(GB/ Worker)
磁盘(GB/ Worker)
软件:
操作系统:Linux(已测试 RHEL 和 Ubuntu )。
Python:3.9+,建议使用更新版本,并在可行情况下使用虚拟环境。
Docker : 20.10.0+,需安装 Docker Compose。
确保运行 Recurve Agent 的用户有权限访问 Docker CLI。可以使用以下命令授予用户权限。在修改用户组后,可能需要注销并重新登录终端会话。
Copy sudo usermod -aG docker $USER
设置 Recurve Agent
请按照以下步骤进行操作:
在 Recurve 左侧边栏中,点击“组织/ Organization” 图标并选择“环境和 Workers/ Environment & Workers” 。
点击“部署 Agent/ Deploy Agent” 并按照屏幕上的指示完成 Agent 的部署。
或者,您也可以按照以下步骤操作。
在命令行界面(CLI)中安装 Recurve Agent在 Worker Host 上:安装 Agent 包。
Copy pip install -U recurve-agent
您可以通过运行以下命令来验证安装是否成功: recurve version
在 Worker Host 上:将 Host 注册到控制面。
在“环境和 Workers/ Environments & workers” 页面中,点击“部署 Agent/ Deploy Agent” ,复制API密钥,并粘贴到 Host 上。
在 Worker Host 上:启动 Agent,Agent 将持续向控制面发送心跳信号。
刷新页面以查看新部署的 Host,状态应显示为“在线/ Online” 。
将 Agent 分配到环境。
当 Agent 运行并显示“在线/ Online” 状态后,点击“操作/ action” >“加入环境/ Join Environment” ,选择要分配的环境。当 Agent 成功加入环境后,您应会看到状态变为“活动中/ Active” 。
注意事项
recurve agent start
命令会在前台启动 Agent ,当终端会话关闭时,Agent 也会终止。对于生产部署,您应让 Agent 在后台运行。更多详细信息,请参考: 在后台运行 Agent 。
dev
和prod
环境必须至少各有一个 Agent 在运行。
Agent 的操作
当 Agent 启动并运行后,您可以执行一些关键操作。
点击 Agent 的 操作/action 按钮即可:
可以执行以下操作:
重启服务: 重启 Agent 服务,重启后 Agent 仍会加入环境。
停止服务: 停止 Agent 服务, Agent 将变为非活动状态。
在后台运行 Agent
有多种方式可以将 Agent 在后台运行,例如,使用 systemd 或 Supervisor 等工具。
systemd创建 /etc/systemd/system/recurve-agent.service
文件,并添加以下内容:
Copy [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
Copy sudo mkdir -p /var/log/recurve
sudo chown < os_use r > : < os_use r > /var/log/recurve
Copy sudo systemctl daemon-reload
sudo systemctl start recurve-agent
sudo systemctl enable recurve-agent
Supervisor安装 Supervisor
Copy # Install on Ubuntu
sudo apt install supervisor
# Install on CentOS (RHEL)
sudo dnf install supervisor
# or
sudo yum install supervisor
Copy sudo groupadd supervisor
sudo usermod -aG supervisor $USER
安装后,/etc/supervisord.conf
中应该已经有一个配置文件。做一些修改以允许supervisor
中的用户运行访问 supervisord。
Copy [unix_http_server]
file=/run/supervisor/supervisor.sock ; (the path to the socket file)
chmod=770
chown=root:supervisor
Copy sudo systemctl enable supervisord
sudo systemctl start supervisord
现在,您应该能够运行 supervisorctl
(supervisord 的控制命令行界面)。
添加 recurve-agent
将一个配置文件添加到 /etc/supervisord.d/recurve-agent.ini
,其内容如下:
Copy [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
文件夹。
替换日志路径 stdout_logfile
,用户应该具有对该文件夹的写访问权限。
Copy # 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 ,请按照以下步骤操作:
停止 Agent 服务
根据您管理服务的方式,您可能需要运行以下命令之一来停止该进程:
Copy # if managed by Systemd
sudo systemctl stop recurve-agent
# if managed by Supervisor
supervisorctl stop recurve-agent
Copy # Upgrade to the latest version
pip install -U recurve-agent
recurve login
Copy # if managed by Systemd
sudo systemctl start recurve-agent
# if managed by Supervisor
supervisorctl start recurve-agent