「技术」混合云环境中的Kubernetes和HPC应用程序Part II( 二 )

在过去的五年中 , 已经将数十种HPC应用程序进行了容器化 , 无论是商业化的 , 例如ANSYS , COMSOL , STAR-CCM + , 还是开源软件包(如OpenFOAM和GROMACS) , 以及HPC集群调度程序 , 例如Univa Grid Engine和Slurm 。 由于采用了容器技术 , 因此可以提供持续不断的更新和改进 , 客户可以快速 , 无缝地对其进行更新 。 此外 , 容器映像允许用户随时返回到先前的应用程序版本 , 以便他们始终可以重现其先前的结果 。
「技术」混合云环境中的Kubernetes和HPC应用程序Part II
本文插图
在托管Kubernetes上运行的示例HPC应用程序集群架构
同时 , 通过使用诸如Terraform和Puppet之类的基础架构和配置管理工具或通过将特定于云的HPC集成构建到现有门户中 , 已经实现了许多容器环境 。 但是随着Kubernetes的到来 , 容器环境变得更易于维护并且更加动态 。 控制器不断驱动集群 , 从而将集群推出 , 重新调整工作节点的规模 , 使用一组恒定的可抢占实例以及高可用性 。
因此 , Kubernetes和HPC主要差距已被消除 。 这样 , 今天 , 任何Kubernetes环境都可以支持分布式内存/ MPI作业 , 该环境提供了在HPC容器内运行的内置HPC工作负载管理器集成 。 这使传统的HPC应用程序无需任何更改即可运行 。 同时 , 通过在内部运行的高性能支持GPU的Pod , 已成功启动了基于Ansys和COMSOL的GPU和未支持GPU的应用程序 。 登录到桌面后 , 工程师可以开始提交批处理作业或单个MPI应用程序 , 这些应用程序分布在多个节点上分配的一组Pod中 。
结论 Kubernetes不仅支持基于微服务的企业应用程序 , 而且还支持自助服务工程HPC应用程序 。 总而言之 , 正如该研究表明的那样 , 使用Kubernetes作为运行容器化工程应用程序的基础的主要优点是:

  • 几乎所有基础架构上均可使用统一应用程序堆栈;
  • 真正的混合云使用方案 , 可满足工程负载的需求 。 对于工程师而言 , 无论在本地还是在云中运行应用程序 , 它都是透明的;
  • 通过始终分配云中可用的最新和最快的机器 , 从而为运行工程应用程序提供最佳性能;
  • 作为工程师的自助服务 , 构建并调整独立的HPC应用程序和计算集群的大小 , 并且仅受每个时间段的云配额和预算限制;
  • 强大的管理堆栈 , 得到许多云提供商的支持;
  • 仅通过支付使用费用来优化成本 。 不需要闲置资源 , 这些闲置资源将在使用前被分配;
  • 通过独立的专用计算集群实现高安全性;
  • 通过自我配置和一次性组件(将更新简单地销毁并重新创建命令) , 将操作开销降至最低;
  • 基于Kubernetes的工作负载更易于集成到广泛采用的持续集成和部署解决方案中(例如Tekton , Concourse或Jenkins的未来版本) 。
在这项研究中 , 基于容器的HPC应用程序环境已在Kubernetes之上实现(例如 , 在Google GCP和Amazon AWS上) , 并且还用作自助服务测试环境 , 可由HPC应用程序专家而非运营商从头开始部署 。 它也已用于CI / CD管道中 , 以自动构建测试环境 , 以针对现有容器解决方案运行测试并随后关闭基础架构 。 在客户环境中 , IT部门受益于使用受支持的托管Kubernetes易于维护的系统 , 该系统可以在几分钟之内增加 , 调整大小和删除计算资源 。
雷锋网编译 , viahpcwire.com(雷锋网雷锋网)


推荐阅读