本文档介绍了使用 Symphony 连接器进行 Google Cloud时适用的要求和限制。
借助 IBM Spectrum Symphony 连接器,您可以将 Google Cloud 的计算资源添加到 Symphony 集群中。 Google Cloud 当高性能计算 (HPC) 工作负载需要的容量超出现有基础架构提供的容量时,连接器可让 Symphony 的主机工厂服务在 Google Kubernetes Engine (GKE) 中自动预配 Compute Engine 虚拟机 (VM) 实例或 pod。借助这种方法,您可以将 Symphony 环境扩展到 Google Cloud ,以满足 HPC 工作负载的峰值需求。
何时使用适用于 Google Cloud的 Symphony 连接器
适用于 Google Cloud 的 Symphony 连接器将 Symphony 的主机工厂服务与 Google Cloud集成,让您可以在 Symphony 集群中使用 Google Cloud资源。在以下情况下,请使用适用于Google Cloud 的 Symphony 连接器:
云爆发:当本地集群资源不足时,将 Symphony 工作负载动态扩展到 Google Cloud ,以访问额外的计算容量。适用于 Google Cloud的 Symphony 连接器可根据需要自动预配资源,并与现有的 Symphony 作业调度集成。
混合云部署:如果您在本地和 Google Cloud 基础架构中运行 Symphony 工作负载,则可以使用此解决方案通过 Symphony 主机工厂框架统一资源管理。借助此方法,您可以通过单个界面管理本地资源和 Google Cloud 资源,从而简化作业提交、监控和资源管理。
费用优化:使用 Google Cloud灵活的实例类型和价格模式(例如 Spot 虚拟机 [抢占式虚拟机])来运行对费用敏感的工作负载。
开发和测试:如需为开发或测试工作流预配临时计算资源,请使用适用于 Google Cloud的 Symphony 连接器快速创建和删除环境。通过自动清理资源来优化费用。
统一管理:使用主机工厂创建一致的接口,以管理 GKE pod 和 Symphony 使用的 Compute Engine 实例。
无缝企业集成:使用此解决方案将现有 Symphony 部署扩展到 Google Cloud ,而无需进行重大架构更改。
了解适用于 Google Cloud 的 Symphony 连接器的工作原理
适用于 Google Cloud 的 Symphony 连接器提供必要的组件,以使Google Cloud 成为主机工厂服务的提供程序。
下图展示了适用于Google Cloud的 Symphony 连接器的架构:

此架构包含三个主要组:IBM Spectrum Symphony 环境、 Google Cloud 主机工厂提供程序层 Google Cloud 和服务。Symphony 环境包含主机工厂和提供程序脚本。此架构使用 Google Cloud 主机工厂提供程序 CLI 工具层来转换请求,从而使 Symphony 脚本能够控制 Compute Engine 资源和在 GKE 中运行的 Kubernetes 运算符。
以下部分介绍了适用于 Google Cloud的 Symphony 连接器的主要组件。
IBM Spectrum Symphony 主机工厂
一种 IBM Spectrum Symphony 服务,可根据工作负载需求管理来自各种提供方的计算主机的生命周期。此 Symphony 组件是与 Google Cloud 集成的软件。
提供程序脚本
Symphony 主机工厂服务使用一组 shell 脚本与云提供商集成。这些脚本会请求和返回资源。
默认情况下,Symphony 不包含 Google Cloud的主机工厂提供程序。
Google Cloud 主机工厂提供程序使 Symphony 主机工厂框架能够与 Google Cloud通信。
下表显示了适用于 Google Cloud 的 Symphony 连接器使用的脚本:
| 名称 | 说明 | IBM 文档 |
|---|---|---|
getAvailableTemplates.sh |
检索提供程序配置中定义的可用资源模板。主机工厂调用 getAvailableTemplates.sh 以了解它可以请求哪些类型的资源。 |
getAvailableTemplates |
requestMachines.sh |
从 Google Cloud预配新的计算资源。它会接收指定模板和数量的 JSON 载荷。 | requestMachines |
requestReturnMachines.sh |
主机工厂取消预配 Symphony 集群使用的计算资源。它会接收一个 JSON 载荷,用于标识要返回的机器。 | requestReturnMachines |
getRequestStatus.sh |
主机工厂轮询由 requestMachines.sh 发起的正在进行的预配请求的状态。它会接收包含请求 ID 的 JSON 载荷。 |
getRequestStatus |
getReturnRequests.sh |
主机工厂轮询由 requestReturnMachines.sh 发起的正在进行的取消预配请求的状态。它会接收包含请求 ID 的 JSON 载荷。 | getReturnRequests |
Google Cloud 主机工厂提供程序
Google Cloud 主机工厂提供程序将 IBM Spectrum Symphony 的主机工厂框架连接到 Google Cloud。此插件包含命令行界面 (CLI) 工具(称为提供程序),Symphony 会调用这些工具来请求和管理以下工作负载的资源:
对于 Compute Engine,请使用 Compute Engine 提供程序。
对于 GKE 工作负载,请使用 GKE 提供程序。对于 GKE 工作负载,您必须安装额外的 Kubernetes Operator。此运算符在 GKE 集群内运行,用于管理使用 GKE 提供程序请求的 IBM Spectrum Symphony 计算 pod 的生命周期。
由于 CLI 工具是 Python 模块,因此您也可以使用 Python 解释器手动运行它们。如需了解详情,请参阅 GitHub 中的从 Python 运行。
Compute Engine 提供程序
Compute Engine 提供程序 (hf-gce) 是一款旨在将 Symphony 的主机工厂与 Compute Engine 集成的 CLI 工具。安装 Compute Engine 提供程序后,您必须在 Symphony 主机工厂中对其进行配置。完成此配置后,主机工厂可以自动调用使用 hf-gce CLI 的脚本。
Compute Engine 提供程序直接与 Google Compute Engine API 交互,以根据 Symphony 的需求以及提供程序实例和模板中定义的配置来管理虚拟机实例的生命周期。提供方创建、监控和终止 Compute Engine 虚拟机,这些虚拟机随后会作为计算节点加入 Symphony 集群。
GKE 提供程序
GKE 提供程序 (hf-gke) 是一种 CLI 工具,用于将 Symphony 的主机工厂服务与 GKE 连接起来。主机工厂使用调用 hf-gke CLI 的脚本。
GKE 提供程序与 GKE 集群的 API 交互,以创建、查询和删除自定义资源,特别是 GCPSymphonyResource 和 MachineReturnRequest 资源。
在 GKE 集群内运行的 Kubernetes 运算符会根据这些自定义资源处理 pod 生命周期管理。 GKE 提供程序将 Symphony 的资源请求连接到基于 Kubernetes 自定义资源的编排。
Google Cloud 服务集成
您可以连接到 Compute Engine 和 GKE。Compute Engine 连接没有其他组件。对于 GKE 连接,有一个 Kubernetes 运算符。
Kubernetes 运算符
仅当您使用 GKE 提供程序运行 GKE 工作负载时,才需要此运算符。此运算符在 GKE 集群内运行,用于管理使用 GKE 提供程序请求的 Symphony 计算 pod 的生命周期。GKE 操作员具有以下功能:
- 异步操作:支持高性能异步处理,适合大规模部署。
- 抢占处理:包括自动检测和管理 Spot 虚拟机抢占。
- 自定义资源定义:使用
GCPSymphonyResource和MachineReturnRequest自定义资源来管理资源。 - 资源清理:自动清理已完成的资源,保留期限可配置。
- 健康状况监控:通过内置的健康状况检查和状态报告来监控集成健康状况。
限制
适用于 Google Cloud 的 Symphony 连接器可为 Symphony 集群预配和管理底层计算基础架构(虚拟机实例和 GKE Pod),但不会创建新的 Symphony 工作负载。您可以继续使用 Symphony 软件来创建、管理、安排和运行工作负载。