在过于简单
和过于复杂之间左右为难?
管理 50 或 100 个容器不应该需要一个专用的平台团队。 但也不应该用 shell 脚本拼凑起来。
Docker Compose 的局限性
没有自动扩缩容,没有高可用性,没有滚动部署。一次糟糕的推送就可能让您的整个服务宕机——而手动恢复会让团队无法专注于交付。
Kubernetes 过于复杂
文档要求每台机器至少 2 GB 内存,需要数月的上手时间,以及 1-2 名专职工程师来维护。在这个规模下,您正在为那些您永远不会完全使用的功能支付企业级溢价。
每一次部署都是一次风险
没有金丝雀发布意味着 Bug 会瞬间影响 100% 的用户。没有审计追踪意味着您无法在合规审查或事后复盘中回答“什么被更改了以及何时更改的?”。
- 30-60 分钟的手动部署步骤
- 一次糟糕的部署会导致 100% 的用户受影响
- 流量激增时需手动扩容
- 无审计跟踪 —— “谁改了那个?”无法回答
- 密钥存储在环境变量或 bash 脚本中
- 从故障中恢复需要 15-30 分钟
- 2-3 分钟的自动化部署,每次如此
- 金丝雀发布在全面推出前将 bug 暴露给 10% 的用户
- 由 Prometheus 驱动的自动扩缩容,无需人工干预
- 完整的审计跟踪,包含操作者、时间戳和结果
- 基于 Vault 的密钥存储在 tmpfs 上——绝不使用环境变量
- 健康检查失败时即时自动回滚
注册、连接、部署
Odysseus 是完全托管的。注册,运行一行命令连接您的节点,然后开始部署——控制平面由我们负责。
你需要的一切。
你不需要的,一样没有。
专为那些已经超越 Docker Compose 但不想仅仅为了运行容器而组建平台团队的团队而构建。
您已熟悉的 Docker Compose 语法
使用 x-odysseus 块扩展您现有的 docker-compose.yml 文件。无需学习新的 DSL——您的团队第一天就能交付。
多网络容器附加
将容器同时连接到多个 Docker 网络——这是 Nomad 和许多其他编排器的关键限制,Odysseus 原生解决了这个问题。
四级 RBAC
开箱即用的管理员、操作员、开发者和只读角色。精确控制谁可以部署、扩缩容或仅进行观察——使用 JWT + mTLS 认证。
轻量级代理程序,零开销
Odysseus 代理程序是一个单一的 Go 二进制文件,运行在你的节点上——在实时的生产和开发节点上测量,常驻内存约为 28 MB。安装只需几秒,通过健康检查门控的回滚实现自动升级。
自动化事件响应
Odysseus 实时检测容器崩溃、OOM 终止、重启循环和健康检查失败——然后自动执行修复。无需值班疲劳的自愈基础设施。
内置 CVE 扫描
使用 Trivy 和 Grype 进行双后端漏洞扫描。定义策略以自动阻止包含严重 CVE 的部署。获取基于严重性优先级的补丁建议。
认识 Athena —— 你的 AI 运维助手
通过自然语言部署、故障排除和管理基础设施。Athena 连接到 61 个编排工具,具有 RBAC 范围的访问权限和安全防护栏。
SRE 编排器 —— 自愈基础设施
实时检测容器崩溃、OOM 终止、健康检查失败和性能异常。集成的 LLM 诊断根本原因并执行安全的修复——具有渐进式发布和人工批准防护栏。
LLM 驱动的分析
具有可配置超时、令牌限制和自定义系统提示的多轮 AI 分析。LLM 调查、诊断并提出命令——每个命令都标记了风险级别。
可配置的防护措施
设置每个事件的最大命令数、冷却期、危险命令模式和每服务黑名单。控制哪些严重性和风险级别可以自动执行。
完整的事件生命周期
事件经历开放、进行中、等待批准、已解决、失败或升级等状态——具有去重、关联和解决跟踪(已修复、已驳回、外部、无需操作)。
在每节点 50–100 个容器时——以及更多情况下——使用的正确工具
Odysseus 专为 Docker Compose 失效、而 Kubernetes 又过于复杂(超出任务需求)的场景而构建——并从此处继续发展。Nomad 是此表中最接近的同类产品;在它与我们匹配或超越我们的地方,该行会说明。
| 能力 | Docker Compose | Odysseus | Kubernetes | Nomad[5] |
|---|---|---|---|---|
| 自动扩缩容 | ✗> | ✓ 基于 Prometheusd> | ✓ 复杂设置d> | ✓ 独立的自动扩缩容代理程序d> |
| 零停机部署 | ✗> | ✓d> | ✓d> | ✓ 滚动 update 块d>
|
| 金丝雀部署 | ✗> | ✓ 自动提升 + 回滚d> | 通过 Istio/Argo | ✓ 自动提升 + 自动回退d> |
| 即时回滚 | ✗> | ✓d> | ✓d> | ✓ 回退到上一个稳定版本d> |
| RBAC | ✗> | ✓ 4个内置角色d> | ✓ 复杂 RBACd> | ✓ ACL 策略和角色d> |
| 审计跟踪 | ✗> | ✓ 内置d> | 通过附加组件n | 仅限企业版 |
| Vault 密钥注入 | ✗> | ✓ tmpfs 挂载d> | 通过边车容器> | ✓ 原生,tmpfs 密钥目录d> |
| 地理数据驻留 | ✗> | ✓ 放置过滤器,按 ISO 国家或地区[1]> | 通过自定义标签上的节点亲和性span> | ✓ 区域和数据中心约束d> |
| 租户隔离 | ✗> | ✓ 节点被注册到租户d> | 命名空间;节点是集群范围的an> | 命名空间;节点是共享的span> |
| 多网络容器 | 有限/td> | ✓ 原生支持d> | 通过CNI插件> | 每个任务一个network_mode/span> |
| 控制平面内存 | 无 — 仅命令行 | 实测47–65 MB | 每台机器最低2 GB[2]td> | 每台服务器8–16 GB,三或五台服务器 |
| 每节点代理程序内存 | 无 — 仅命令行 | 实测约28 MB | 在K3s上实测为275 MB;托管提供商预留574 MB – 1.9 GB[3]td> | 无公开数据 |
| 学习曲线 | 小时 | 天 | 月 | 天 |
| AI 运维助手 | ✗> | ✓ Athena (61 个工具)d> | ✗> | ✗> |
| CVE 扫描 | ✗> | ✓ Trivy + Gryped> | 通过附加组件n | 通过附加组件n |
| 自动事件响应 | ✗> | ✓ AI 驱动的 SREd> | 通过附加组件n | 重启和重新调度策略> |
| 专属平台人员 | 0 | 0 | 1-2 名工程师 | 您自行运行服务器 |
| 每节点容器数 | 1-20 个容器 | 50-100+ 个容器[4] — 平台总容量随节点数量扩展td> | 每节点 110 个 Pod[4] — 一个 Pod 包含一个或多个容器td> | 无公开上限 — 在其自身的两百万容器运行中,每个客户端约 330 个 |
这些数字和声明是如何得出的
-
地理数据驻留是一种放置过滤器,默认处于关闭状态。
部署携带
odysseus.io/data-residency-country— 一个 ISO 3166-1 alpha-2 代码,例如CA或DE— 或odysseus.io/data-residency-region,它命名了一个由操作员定义的此类代码集合,或odysseus.io/blocked-countries。调度器在放置任何内容之前,会将每个代码与节点自身的国家和地区标签 进行比较, 不满足要求的节点将从候选集中移除 — 因此 部署不能落在其允许的地理区域之外,而不是事后才被发现。它在控制平面的配置中按安装启用, 默认关闭;区域是操作员自己的定义,不是我们的。 Kubernetes 可以表达相同的约束:它提供了topology.kubernetes.io/region和topology.kubernetes.io/zone作为 节点标签,以及节点亲和性来基于它们进行选择,但它没有自己的国家或驻留标签 — 因此那里的驻留是通过自定义标签和亲和性规则组装的 — kubernetes.io。 区别在于概念存在于何处,而不是能否实现。 Nomad 不需要这样的组装,这一行并不是与它相比的差异化因素: region 和 datacenter 在其架构中是一等公民,作业 可以基于${node.datacenter}、${node.region}或 任何操作员设置的${meta.<key>}值来约束放置。那里不同的只是词汇, 而非能力 — 我们的驻留标签是携带 ISO 国家代码和区域成员资格的命名标签, 而他们的是指向操作员在节点上写入的任何内容的通用约束。 -
Odysseus 内存数据是实测的,而非建模的。 两者都是运行进程的常驻内存(RSS),在 2026 年 8 月 20 日的 14 分钟窗口内,在两个实时安装实例上采样:生产环境(控制平面 47–51 MB,19 个样本;节点代理程序 26–28 MB)和开发环境(控制平面 49–64 MB,18 个样本;节点代理程序 26–28 MB)。控制平面每个安装实例运行一次;代理程序每个节点运行一次。控制平面自身通过其 Prometheus
/metrics端点发布该数据为process_resident_memory_bytes,因此可以直接验证,无需依赖信任。我们引用 RSS 而非docker stats,因为后者包含可回收的页面缓存,在刚启动的容器上,这部分缓存会高出数倍,且不属于编排器。Kubernetes 的数据是上游 kubeadm 安装指南中记录的最低要求: “每台机器 2 GB 或更多 RAM” — kubernetes.io。 -
逐节点比较。上游 Kubernetes 未为其节点代理程序发布默认预留资源——
kubeReserved和systemReserved均为空——因此没有单一的官方数字可供引用。此处分析的数字是 SUSE 发布的 K3s 资源分析,该分析将代理程序(工作)节点上的 Kubernetes 组件——其原文为“kubelet 和 k3s agent”——在 Intel 8375C 上的稳态第 95 百分位读数定为 275 MB——docs.k3s.io。K3s 是一个单一合并的二进制文件,拥有自己的嵌入式运行时,因此这是上游 Kubernetes 以独立进程运行相同组件时的下限,并非等效值。预留数字是托管服务提供商在调度任何应用容器之前,从每个工作节点中扣除的容量,根据其自身发布的公式计算得出:AWS EKS 预留(11 × max-pods) + 255MiB(在 m5.large 上为 574 MiB,该实例支持 29 个 Pod)——docs.aws.amazon.com;Google GKE 预留前 4 GiB 的 25% 和接下来 4 GiB 的 20%,外加 100 MiB(在 8 GiB 节点上约为 1.9 GiB)——cloud.google.com。预留容量是调度程序扣除的配额,而非实测消耗;我们如此标注是因为两者并非同一回事。 - 容器数量是按节点计算的,我们的表述是关于适用性的说明,而非上限。该范围描述了 Odysseus 设计定位的区间——高于 Docker Compose 力所不及的起点,低于 Kubernetes 复杂性开始显现的终点。这是定位说明,而非基准测试结果,我们也不将其作为基准测试结果呈现。平台总数是该按节点数字乘以控制平面管理的节点数量——这是架构上的推论,并非我们在大规模集群上实测的结果,因此我们也不发布集群规模的数字。Kubernetes 的数字是该项目自身文档中记录的受支持集群上限:“每个节点不超过 110 个 Pod”,同时声明“不超过 5,000 个节点”和“不超过 300,000 个容器”——kubernetes.io。这两列统计的单位不同——Kubernetes 限制的是 Pod,一个 Pod 包含一个或多个容器,而我们统计的是容器——因此请将它们视为相邻而非可互换的指标。我们不在两者之间进行换算,因为比例取决于 Pod 的构建方式。托管发行版的上限更低:AWS EKS 根据机器的网络接口而非该文档中的数字推导出每个节点的 Pod 上限,其自身示例为双 vCPU 机器上的 29 个 Pod——即注释 3 中引用的文档。Nomad 根本不发布任何按节点上限,因此其单元格如此说明而非提供数字。HashiCorp发布的最大运行规模是其自身的演示:在 10 个 AWS 区域中,跨 6,100 个客户端(Nomad 对运行其代理程序的节点的称呼)运行 2,000,000 个容器,由三个服务器在 22 分钟内完成调度——hashicorp.com——平均每个客户端约 330 个容器。这是演示而非受支持的上限,且该数字大于我们运行过的任何规模。
-
Nomad列已标注来源,且在多行中胜出。Nomad是本表中与Odysseus最接近的同类——单一二进制文件,资源占用轻,且设计为与本平台运行的同一Consul集成——因此在此使用针对Kubernetes的对比框架并不公平,我们并未采用。
滚动更新、带
auto_promote的金丝雀发布、失败部署的自动回滚以及回退到上一个稳定作业,这些功能均包含在社区版作业规范的update块中—— developer.hashicorp.com。 自动扩缩容是真实存在的,它作为第二个守护进程运行:Nomad Autoscaler是“独立于Nomad构建和发布的”,覆盖水平应用和集群扩缩容,并在其指标源中读取Prometheus—— developer.hashicorp.com。 密钥处理至少与我们持平:任务的secrets/目录由内存文件系统支持并以noexec方式挂载—— developer.hashicorp.com。 ACL策略和角色属于社区版。 不属于社区版的功能包括:审计日志、资源配额和Sentinel策略属于Nomad企业版,将单个作业跨联邦区域部署也是如此——而联邦化区域本身则不是—— developer.hashicorp.com。 命名空间属于社区版,它们对作业、分配、部署和评估进行分段;文档明确说明“Nomad不会对跨多个命名空间共享的对象进行命名空间划分。这包括节点”—— developer.hashicorp.com。 Kubernetes划定了相同的界限——“低级资源,例如节点……不属于任何命名空间”—— kubernetes.io; 在本平台上,节点被注册到一个租户,这正是该行所记录的内容。 服务器数量是HashiCorp自身的参考架构——“一个Nomad集群通常由三到五台服务器组成”,对于小型生产部署,每台服务器配置2-4核CPU和8-16 GB内存—— developer.hashicorp.com。 读者应像我们对待注释2中的Kubernetes数据那样看待此机器规格:这是建议值,而非实测的进程内存。我们未找到客户端代理程序的公开数据,因此该列标注为无,而非猜测,而关于学习曲线的行是我们基于估计而非任何实测数据得出的。
简单、透明的定价
基础费用 + 按节点定价,随你扩展。免费开始,随业务增长升级。
适用于独立开发者、家庭实验室和评估用途。
- 最多3个节点
- 1 个用户
- 完全兼容 Docker Compose
- WireGuard VPN 网格
- 基础 Prometheus 指标
- 2层RBAC
- 社区支持
- 无 Athena AI
- 无 CVE 扫描
适用于运行小型生产工作负载的独立开发者和小型团队。
- 最多 5 个节点
- 最多 3 个用户
- Athena AI(每月 100 次查询)
- 每周 CVE 扫描
- 金丝雀部署
- Vault 密钥注入
- 基础 SRE 自动化
- 30 天审计日志
- 邮件支持(48 小时 SLA)
适用于中小型企业生产工作负载。核心商业层级。
- 最多 50 个节点
- 无限用户
- 无限 Athena AI
- 持续 CVE 扫描 + 策略门控
- 完整的金丝雀自动提升/回滚
- Prometheus 自动扩缩
- 全面SRE自动化(8种事件类型)
- 完整4层RBAC
- 90天审计日志
- 优先支持(4小时SLA)
适用于具有合规性和自定义 SLA 需求的多站点组织。
- 无限节点
- 包含Pro版所有功能
- 多数据中心联邦
- SSO / SAML / LDAP / OIDC
- 1年审计日志
- SOC 2 & ITSG-33合规
- 批量折扣(50+节点)
- 专属客户经理
- 1小时SLA + 24/7待命支持
开始编排
10 分钟内即可完成。
注册、连接你的第一个节点并部署——全部在 10 分钟内完成。无需 Kubernetes 专业知识,无需专用平台团队。