脉搏
运行 c2j 任务在云计算 或者你自己的跑者.
Pulse 监视 JobDB 租户中的所有寄存器, 找到需要执行器的工作, 为每个选定的工作获得 JobDB 租约, 并将其传递到容器 。 它使用c2j的公用Go图书馆来进行发现并给每次发射都标记其JobDB身份. 控制器不需要单独的 c2j 可执行文件 ; 执行器图像必须包含 c2j 及其配方所需的工具。 。 。 .
安装 • 妇女 快开始 • 妇女 在容器中运行 • 妇女 配置 • 妇女 供应商 • 妇女 HTTP API 密码
安装
无
npm install --global @colony2/pulse
pulse version
要求节点.js 22+, tar,启用了安装脚本,而HTTPS访问 GitHub Releases 。 安装者下载匹配的本地可执行文件并验证存档的SHA-256校验和.
原生可执行文件
下载您的平台存档 GitHub 发布,验证它与 checksums.txt设置 pulse 在你身边 PATH. 原生可执行文件需要 Node.js. 档案还包含可选的 Linux pulse-exec 桥为云供养. Docker只需要脉冲可执行文件.
Linux和macOS在AMD64和ARM64上得到支持. 集装箱图像支持Linux AMD64和ARM64. 本地多克供应商在macOS上支持Linux服务器和多克桌面,使用Pulse自动多克套接字/文本发现.
快开始
在 Linux 上启动 Docker 引擎, 在 macOS 上启动 Docker 桌面, 然后运行 :
pulse
不需要脉冲配置文件 。 Pulse 使用与 c2j 相同的租户设置 : C2J_JOBDB,则 jobdb 以最接近为单位 .c2/config.yaml。您也可以明确选择租户:
pulse run --jobdb https://jobdb.example.com/acme
pulse check
pulse run --once
pulse version
Pulse在租户的每一个仓库都发现了合格的c2j工作. Docker是默认的提供者,没有图像/基准请求的工作使用选择器 ubuntu-26*,解决一个得到支持的Ubuntu 26.04基地 ghcr.io/colony-2/base2:latest。没有资源要求的工作没有CPU、内存或抓取分配,Docker没有默认的容器计数上限。 Docker检测出本土并模仿了执行支持,更喜欢它的守护进程在macOS和Linux上的本土架构. 明确的基础选择者仍然制约着建筑结构.
对于殖民地基础图像, Docker 自动保留 v、 pnpm 和 Nix 依赖性 跨行业和重新开始的租户范围。 没有 Nix 守护进程或手动缓存 需要设置。 见 缓存设置和图像先决条件。 。 。 .
check 验证设置并初始化提供者;它不验证远程连接或发射权限. run --once 执行一次发现/提交通行证。 两者 pulse 财务报告和审定财务报表 pulse run 在SIGINT或SIGTERM之前保持投票,并将 JSON 日志写入 Stderr 。 所发射的容器继续在其寿命控制之下.
独立执行的 go 提供者指南。脉冲使用零依赖性 提供者 API;自定义二进制可以在没有插件的情况下注册执行.
对于自定义提供者或多个租户,使用可选配置: 远程跑车, (中文(简体) ), 本地嵌入器覆盖,或 云提供方。执行器图像必须包含 c2j 与 run with-lease 支持;云图像也需要 pulse-exec。使用包含承诺的 JobDB 服务器 39ae1b444460 或后有可用路由的发现和提供租赁更新支持;与Pulse一起升级服务器.
在容器中运行
使用 ghcr.io/colony-2/pulse。对于简单的部署,请在 PULSE_CONFIG开始 实例/容器.yaml,然后运行:
export PULSE_CONFIG="$(cat pulse.yaml)"
docker run --rm --init \
--read-only --tmpfs /tmp -p 8080:8080 \
-e PULSE_CONFIG -e PULSE_PROVIDER_TOKEN \
ghcr.io/colony-2/pulse:latest
文件在主机上读取. 在部署控制台,设置 PULSE_CONFIG 直接到 YAML 内容 。 将证书保存在单独的秘密/环境设置中,或使用主机平台的身份. 对于可重复的部署,请选择诸如 :vX.Y.Z 或图像摘要.
图像不透明, 作为 UID/ GID 运行 65532:65532,并包含 Pulse、其执行主管和CA证书。 它包括了本土的云认证,不需要外壳,Node.js,Git,云CLI,或者单独的c2j可执行. 配置 defaults.base 一个环境选择器。 遗产 defaults.image 加号 defaults.platform 仍然支持清晰的OCI图像.
对于挂载的YAML,请明确通过文件路径:
docker run --rm --init --read-only --tmpfs /tmp -p 8080:8080 \
--mount "type=bind,source=$PWD/pulse.yaml,target=/etc/pulse/pulse.yaml,readonly" \
-e PULSE_PROVIDER_TOKEN \
ghcr.io/colony-2/pulse:latest --config /etc/pulse/pulse.yaml
挂载文件必须由UID 65532读取. 见 配置和云运行部署, (中文(简体) ), 云认证,以及 嵌入套接字设置。 。 。 .
配置
脉冲可选择加载一个YAML文档,顺序为:
- 明确
--config PATH。 。 。 . PULSE_CONFIG包含YAML本身../pulse.yaml如果有的话.- 内设缺省.
来源不合并. 空或无效的内行配置失败启动, 除非选中一个明确的文件 。 价值是字面的,没有扩展环境占位符。 重新启动或重新部署以应用更改 .
租户选择用途 --jobdb一个明确的脉冲目标 jobdb, (中文(简体) ), C2J_JOBDB,然后是 c2j 项目设置。 每个目标覆盖整个租户. 失踪 instance_id 值来自 JobDB 部署 URL。 删除已过期 cells 升级时设置。 Pulse需要一个HTTP(S)JobDB租户;c2j的嵌入式数据库不能服务于集装箱工人.
发射服务具有积极的数值优先事项: 1胜2负平等优先服务每批轮流首选。 提供商可以接受一部分批次,而将其余部分降低为倒置.
targets:
- instance_id: production
jobdb: https://jobdb.example.com/acme
jobdb_token_env: JOBDB_TOKEN
launch_services:
- {name: runner_pool_a, priority: 1}
- {name: runner_pool_b, priority: 1}
- {name: cloud_overflow, priority: 2}
定义这些服务名称 providers 供应 JOBDB_TOKEN 用于认证的 JobDB 发现和租赁收购。 脉搏从不向执行者传递这种广泛的证书. 奥米 jobdb_token_env 进行未经认证的部署。 提供者认证被单独配置 .
何时 providers 已忽略或为空, Pulse 允许本地提供者命名 docker在苹果硅macOS上使用 tart 打开 PATH,它也可以使 tart 使用脉冲-tart默认的两个macOS和四个Linux job VM(每个4 vCPU / 8 GiB;Linux包括多克克). 没有目标 launch_services 偏好优先1的多克,然后优先2的塔尔特,明确提供者地图仍然具有权威性. 默认基础是 ubuntu-26*; 选择 defaults.base: 'macos*' 为macOS的工作。 见 塔尔特和果园配置。 。 。 .
默认的多克池使用守护进程CPU和内存容量,没有容器计数上限和每个容器的256 MiB 会计间接费用. 启动 Docker 引擎或 Docker 桌面 。 Docker直接发射c2j并供应其租借地上自有stdin,没有主机挂载或辅助安装. 见 嵌入器默认并覆盖。 。 。 .
c2j拥有食谱和操作超时; Pulse默认不会强制执行超时. 可选基础设施上限必须明确配置,并由选定的提供者提供支持。 默认是5秒的民意调查间隔,5分钟的租赁期限,60秒的供给-失败回放,以及最多100个工作的批次. 索赔同时有8个电话和一个5秒钟的索赔窗口 claim_concurrency, (中文(简体) ), claim_timeout,以及 batch_size脉冲在提交之前获得租约,而不续签;c2j在启动时续签所提供的租约。 接受或不确定的开始取决于租约到期后才可收回。 确定不启动 解除租赁与退让。 In-memory 冷却只抑制失败; JobDB 所有权幸存控制器重启. 见 配置细节 报告全文 实例。 。 。 .
供应商
| 提供者 | 类型 | 页:1 |
|---|---|---|
| 本地嵌入器 | docker | CPU,内存和容器计算预算;没有磁盘配额. |
| 本地塔尔特 | tart | macOS和Linux ARM64 VM,其中多克包含在Linux来宾上,多克则包含在macOS上;在安装了塔尔特的Apple Silicon Macs上自动启用. |
| 果园 | orchard | macOS和Linux ARM64 VM; Linux包括多克克克,多克克克被选入一个配置的果园工人上. |
| 远程驾驶服务 | remote | 批量提交,部分接受,容量回落. |
| 谷歌云跑任务 | cloudrun | 原生工作执行和支持的资源规模. |
| AWS ECS 远门 | ecs | 与执行主管单独任务. |
| Azure 容器应用程序 | azurejobs | 手工工作, 本地执行超时 . |
在云环境,在控制器中附加一个服务账户,任务/任务角色,或管理/工作负荷身份. 在其他地方,供应支持环境证书或挂载证书文件。 见 云认证 财务报告和审定财务报表 供应商业务 用于权限、图像要求、容量和资源清理.
HTTP API 密码
持续模式服务于一个公开的、未经认证的、只读的 API :8080。 。 。 . PORT 更改默认端口; http.listen 可以覆盖地址.
| 获取终点 | 回返 |
|---|---|
/status | 版本,运行时间,投票状况. |
/config | 已编辑环境值和 URL 证书配置 . |
/instances | 在所有配置的提供者中执行实例 . |
/providers/{provider}/instances | 从配置的提供者发送一页 . |
/scheduler/cooldowns | 目前的冷却和飞行尝试. |
/scheduler/round-robin | 优先等级和下一个起始服务. |
curl http://localhost:8080/status
curl 'http://localhost:8080/providers/runners/instances?page_size=100'
列表包括已队列、 启动和运行实例, 并排除终端实例; 在支持的地方包含暂停/ 停止计算 . run --once, (中文(简体) ), check,以及 version 不启动服务器。 见 HTTP API 文档 对于帕吉化和部分失败.
更多文档
许可证
阿帕奇 - 2.0。 。 。 .
本地提供者插件
使用 type: plugin 运行一个可信任、独立安装的计算提供者。 脉冲启动并监督可执行文件,只交付其配置,并保留不确定的提交结果而无需重放. 见 安装与公共 SDK 编辑 单独的模块参考提供者。 。 。 .