DC/OS™ API 是由 DC/OS 组件 支持的路由集合,这些路由通过名为 Admin Router 的 API 网关提供。
图 1. DC/OS API 路由示意图API 网关
Admin Router 是基于 NGINX® 的 API 网关,具有以下功能:
- 为 DC/OS API 提供统一控制平面
- 代理 API 对管理节点和代理节点的组件服务的请求
- 执行用户身份认证
- 提供 DC/OS GUI
Admin Router 在每个 DC/OS 节点上运行,其有如下两种配置:
-
Admin Router 管理节点 公开 管理节点路由. 此配置在每个管理节点上运行,用作与 DC/OS 组件交互的主 API 网关。
-
Admin Router 代理节点 公开 代理路由. 此配置在每个代理节点上运行,并提供用于监视、调试和管理的路由。
某些代理路由,如日志和度量标准,通过管理节点 Admin Router 代理以允许外部访问。 其他路由,如组件管理,仅供内部使用。
路由类型
Admin Router 公开若干路由类型:
- 代理路由 从另一个 URL 检索资源。
- 文件路由 检索静态文件。
- Lua 路由 执行 Lua 代码以生成响应。
- 重定向路由 重定向到另一个 URL。
- 重写路由 将路由转换为其他路由。
群集访问
要确定群集的 URL,请参阅 群集访问.
版本控制
DC/OS API 部分按组件、路由或资源进行版本控制。有关版本控制机制的详细信息,请参阅版本控制.
验证
某些路由未经过身份认证,但大多数路由都需要认证令牌。有关如何获取和使用认证令牌的详细信息,请参阅 验证 HTTP API 端点.
授权
大多数认证路由也需要使用权限授权。DC/OS Enterprise 中的权限包含分层资源标识符和操作(创建、读取、更新、删除、全部)。权限执行可以在两个级别执行:
- 粗粒度权限 是在路由级别 由 Admin Router 执行。
- 细粒度权限 由单个后端组件服务执行。
权限管理可通过具有 超级用户权限 的用户使用 身份和访问管理 API.执行。具有超级用户权限的用户也有隐式权限访问所有路由。
路由使用
-
代理路由 要通过 代理路由确定一个 API 资源的完整 URL,连接群集 URL、路由和后端组件资源路径。
<cluster-url>/<route>/<resource-path>
例如,从以下获取 Apache® Mesos® 版本:
https://dcos.example.com/mesos/version
-
文件路由 没有后端组件,但可能提供多个文件或单个文件的目录。因此,对于文件路由,指定文件路径,而不是后端组件资源路径。
<cluster-url>/<route>/<file-path>
例如,从以下获取群集的 DC/OS 版本:
https://dcos.example.com/dcos-metadata/dcos-version.json
-
Lua 路由 立即在 Admin Router 中执行代码,而不是以代理的方式路由到外部后端组件。对于 Lua 路由,路由后无需路径。
<cluster-url>/<route>
例如,从以下获取管理节点的公用 IP 和群集 ID:
https://dcos.example.com/metadata
-
重写和重定向路由可能会在返回资源之前穿过一个或多个其他 URL 或路由。因此,对于这些路由,请遵循 URL 和路由链以查找端点。资源路径将取决于最终端点。
大多数重写和重定向在另一个 DC/OS API 路由上终止, 但是明显的例外是/login
,它使用 OpenID Connect 和外部身份提供程序进行授权,然后重定向回 DC/OS API。