本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建自定义 Amazon ParallelCluster AMI
重要
我们不建议将构建自定义 AMI 作为自定义 Amazon ParallelCluster 的方法。
这是因为,在构建您自己的 AMI 后,您就不再随 Amazon ParallelCluster 的将来版本收到更新或错误修复。此外,如果构建自定义 AMI,则必须重复执行用于随每个新的 Amazon ParallelCluster 版本创建自定义 AMI 的步骤。
在继续阅读之前,我们建议您先查看自定义引导操作部分,以确定您希望进行的更改能否使用将来的 Amazon ParallelCluster 版本写入脚本以及是否受这些版本支持。
虽然构建自定义 AMI 并不是理想情况(出于前文中提及的原因),但是在某些场景中,仍需要为 Amazon ParallelCluster 构建自定义 AMI。本教程将指导您完成针对这些场景构建自定义 AMI 的过程。
注意
从 Amazon ParallelCluster 版本 2.6.1 开始,在启动节点时将默认跳过大多数安装食谱。这样可以缩短启动时间。要以牺牲启动时间为代价运行所有安装食谱以获得更好的向后兼容性,请将 "skip_install_recipes" : "no"
添加到 extra_json 设置中的 cluster
键。例如:
extra_json = { "cluster" : { "skip_install_recipes" : "no" } }
先决条件
-
Amazon ParallelCluster已安装 安装 Amazon ParallelCluster。
-
您拥有 EC2 密钥对。
如何自定义 Amazon ParallelCluster AMI
使用后面各节中所述的自定义 Amazon ParallelCluster AMI 有三种方式。这三种方式中的两种方式需要您在 Amazon Web Services 账户下构建新的可用 AMI。第三种方法(在运行时使用自定义 AMI)不需要您提前构建任何对象,但确实会增加部署风险。请选择最适合您需求的方法。
修改 AMI
这是推荐使用的最安全方法。由于基础 Amazon ParallelCluster AMI 通常随新版本进行更新,因此该 AMI 具有安装和配置后运行 Amazon ParallelCluster 所需的所有组件。您可以此为基础开始操作。
构建自定义 Amazon ParallelCluster AMI
如果您已具有自定义的 AMI 和软件,则可以在其基础之上应用 Amazon ParallelCluster 所需的更改。
-
连同 Amazon ParallelCluster CLI 一起,在您的本地系统中安装以下工具:
-
Packer:从 Packer 网站
查找并安装最新的操作系统版本。版本必须至少为 1.4.0,但建议使用最新版本。验证 packer
命令是否在您的 PATH 中可用。
注意
在 Amazon ParallelCluster 版本 2.8.0 之前,必须安装 Berkshelf
(使用 gem install berkshelf
进行安装)才能使用pcluster createami
。 -
-
配置您的 Amazon Web Services 账户凭证,以便 Packer 可以代表您调用 Amazon API 操作。Packer 工作所需的一组最低权限记录在 Packer 文档 Amazon AMI Builder 主题的 IAM Task or Instance Role
部分。 -
可以使用 Amazon ParallelCluster CLI 中的
createami
命令以您作为基础的 Amazon ParallelCluster AMI 为起点构建该 AMI:pcluster createami --ami-id
<BASE_AMI>
--os<BASE_AMI_OS>
重要
您不应将正在运行的集群中的 Amazon ParallelCluster AMI 用作
createami
命令的<BASE_AMI>
。否则,该命令将失败。对于其他参数,请参阅 pcluster createami。
-
步骤 4 中的命令运行 Packer,后者具体执行以下操作:
-
使用提供的基础 AMI 启动实例。
-
将 Amazon ParallelCluster 说明书应用于实例,以便安装相关软件和执行其他必要的配置任务。
-
停止实例。
-
从实例创建新的 AMI。
-
创建 AMI 之后终止该实例。
-
输出用于创建集群的新的 AMI ID 字符串。
-
-
要创建集群,请在集群配置内的 custom_ami 字段中输入 AMI ID。
注意
用于构建自定义 Amazon ParallelCluster AMI 的实例类型是 t2.xlarge
。此实例类型不符合 Amazon 免费套餐的资格,因此您需要为构建此 AMI 时创建的任何实例付费。
在运行时使用自定义 AMI
警告
为避免对 Amazon ParallelCluster 使用不兼容 AMI 的风险,我们建议您避免使用此方法。
当在运行时使用可能未经测试的 AMI 启动计算节点时,与 Amazon ParallelCluster 所需的运行时安装软件不兼容可能会导致 Amazon ParallelCluster 停止运行。
如果您不想提前创建任何内容,则可以使用您的 AMI 并基于该 AMI 创建 Amazon ParallelCluster。
使用这种方法,创建 Amazon ParallelCluster 所需的时间会更长,因为必须要安装创建集群时 Amazon ParallelCluster 所需的所有软件。此外,纵向扩展也需要更长的时间。
-
在集群配置内的 custom_ami 字段中输入 AMI ID。