本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建自定义 Amazon ParallelCluster AMI
我们不建议将构建自定义 AMI 作为自定义方法Amazon ParallelCluster。
这是因为,在您构建自己的 AMI 之后,您不会再收到future 版本的更新或错误修复Amazon ParallelCluster。此外,如果您构建自定义 AMI,则必须在每个新Amazon ParallelCluster版本中重复创建自定义 AMI 时所用的步骤。
在继续阅读之前,我们建议您先查看 C ustom Bootstrap Actions 部分,以确定futureAmazon ParallelCluster 版本是否可以编写脚本并支持您要进行的修改。
尽管构建自定义 AMI 并不理想(由于前面提到的原因),但在某些情况下仍需要构建自定义 AMI。Amazon ParallelCluster本教程将指导您完成针对这些场景构建自定义 AMI 的过程。
从Amazon ParallelCluster版本 2.6.1 开始,启动节点时默认跳过大多数安装配方。这是为了缩短启动时间。要以牺牲启动时间为代价运行所有安装配方"skip_install_recipes" : "no"
以获得更好的向后兼容性,请在extra_json设置中添加cluster
密钥。例如:
extra_json = { "cluster" : { "skip_install_recipes" : "no" } }
先决条件
-
Amazon ParallelCluster已安装。
-
Amazon CLI已安装并配置。
-
您有一个 EC2 key pair。
如何自定义 Amazon ParallelCluster AMI
以下各节将介绍三种使用自定义Amazon ParallelCluster AMI 的方法。这三种方法中有两种要求您构建一个新的 AMI,该新的 AMI 在您的支持下可用Amazon Web Services 账户。第三种方法(在运行时使用自定义 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 文档中 A mazon AMI Build er 主题的 IAM 任务或实例角色
部分中。 -
可以使用 Amazon ParallelCluster CLI 中的
createami
命令以您作为基础的 Amazon ParallelCluster AMI 为起点构建该 AMI:pcluster createami --ami-id
<BASE_AMI>
--os<BASE_AMI_OS>
重要 你不应该像<BASE_AMI>
createami
命令一样使用来自正在运行的集群的Amazon ParallelCluster AMI。否则,命令将失败。
有关其他参数,请参阅pcluster createami。
-
步骤 4 中的命令运行 Packer,它专门执行以下操作:
-
使用提供的基础 AMI 启动实例。
-
将Amazon ParallelCluster食谱应用到实例以安装相关软件和执行其他必要的配置任务。
-
停止实例。
-
从实例创建新的 AMI。
-
创建 AMI 之后终止该实例。
-
输出用于创建集群的新的 AMI ID 字符串。
-
-
要创建集群,请在集群配置内的 custom_ami 字段中输入 AMI ID。
用于构建自定义Amazon ParallelCluster AMI 的实例类型是t2.xlarge
。此实例类型不符合Amazon免费套餐的条件,因此您需要为构建此 AMI 时创建的任何实例付费。
在运行时使用自定义 AMI
为避免使用与不兼容的 AMI 的风险Amazon ParallelCluster,我们建议您避免使用此方法。
在运行时使用可能未经测试的 AMI 启动计算节点时,与所需软件Amazon ParallelCluster的运行时安装不兼容可能会Amazon ParallelCluster导致停止工作。
如果您不想提前创建任何内容,则可以使用您的 AMI 并Amazon ParallelCluster从该 AMI 创建一个。
使用这种方法,创建需要更长的时间,因为创建群集Amazon ParallelCluster时需要的所有软件都必须安装。Amazon ParallelCluster此外,扩大规模也需要更长的时间。
-
在集群配置内的 custom_ami 字段中输入 AMI ID。