构建自定义 Amazon ParallelCluster AMI - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

构建自定义 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 AMI

使用后面各节中所述的自定义 Amazon ParallelCluster AMI 有三种方式。这三种方式中的两种方式需要您在 Amazon Web Services 账户下构建新的可用 AMI。第三种方法(在运行时使用自定义 AMI)不需要您提前构建任何对象,但确实会增加部署风险。请选择最适合您需求的方法。

修改 AMI

这是推荐使用的最安全方法。由于基础 Amazon ParallelCluster AMI 通常随新版本进行更新,因此该 AMI 具有安装和配置后运行 Amazon ParallelCluster 所需的所有组件。您可以此为基础开始操作。

New EC2 console
  1. 在 Amazon ParallelCluster AMI 列表中,找到与您使用的特定 Amazon Web Services 区域对应的 AMI。您选择的 AMI 列表必须与您使用的 Amazon ParallelCluster 版本相匹配。运行 pcluster version 验证版本。对于 Amazon ParallelCluster 版本 2.11.9,请转到 https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt。要选择其他版本,请使用相同的链接,选择标签:2.11.9 按钮,选择标签选项卡,然后选择相应的版本。

  2. 登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/)。

  3. Amazon EC2 控制面板上,选择启动实例

  4. 应用程序和操作系统映像中,选择浏览其他 AMI,导航到社区 AMI,然后将您的 Amazon Web Services 区域的 Amazon ParallelCluster AMI ID 输入到搜索框中。

  5. 选择此 AMI,选择您的实例类型和属性,选择您的密钥对,然后选择启动实例

  6. 使用操作系统用户和您的 SSH 密钥登录您的实例。有关更多信息,请导航至实例,选择新实例,然后选择连接

  7. 根据需要自定义您的实例。

  8. 运行以下命令以准备实例来创建 AMI:

    sudo /usr/local/sbin/ami_cleanup.sh
  9. 导航到实例,选择新实例,然后依次选择实例状态停止实例

  10. 使用 EC2 控制台或 Amazon CLI create-image 根据该实例创建新 AMI。

    在 EC2 控制台中
    1. 在导航窗格中选择实例

    2. 选择您创建和修改的实例。

    3. 操作中,选择映像和模板,然后选择创建映像

    4. 选择创建映像

  11. 在集群配置内的 custom_ami 字段中输入新 AMI ID。

Old EC2 console
  1. 在 Amazon ParallelCluster AMI 列表中,找到与您使用的特定 Amazon Web Services 区域对应的 AMI。您选择的 AMI 列表必须与您使用的 Amazon ParallelCluster 版本相匹配。运行 pcluster version 验证版本。对于 Amazon ParallelCluster 版本 2.11.9,请转到 https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt。要选择其他版本,请使用相同的链接,选择标签:2.11.9 按钮,选择标签选项卡,然后选择相应的版本。

  2. 登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/)。

  3. Amazon EC2 控制面板上,选择启动实例

  4. 选择社区 AMI,搜索 Amazon ParallelCluster AMI ID,然后选择该 AMI。

  5. 选择您的实例类型,然后选择下一步:配置实例详细信息查看并启动以启动您的实例。

  6. 选择启动,选择您的密钥对,然后选择启动实例

  7. 使用操作系统用户和您的 SSH 密钥登录您的实例。有关更多信息,请导航至实例,选择新实例,然后选择连接

  8. 根据需要自定义您的实例。

  9. 运行以下命令以准备实例来创建 AMI:

    sudo /usr/local/sbin/ami_cleanup.sh
  10. 导航到实例,选择新实例,然后依次选择实例状态停止

  11. 使用 EC2 控制台或 Amazon CLI create-image 根据该实例创建新 AMI。

    在 EC2 控制台中
    1. 在导航窗格中选择实例

    2. 选择您创建和修改的实例。

    3. 操作中,依次选择映像创建映像

    4. 选择创建映像

  12. 在集群配置内的 custom_ami 字段中输入新 AMI ID。

构建自定义 Amazon ParallelCluster AMI

如果您已具有自定义的 AMI 和软件,则可以在其基础之上应用 Amazon ParallelCluster 所需的更改。

  1. 连同 Amazon ParallelCluster CLI 一起,在您的本地系统中安装以下工具:

    • Packer:从 Packer 网站查找并安装最新的操作系统版本。版本必须至少为 1.4.0,但建议使用最新版本。验证 packer 命令是否在您的 PATH 中可用。

    注意

    在 Amazon ParallelCluster 版本 2.8.0 之前,必须安装 Berkshelf(使用 gem install berkshelf 进行安装)才能使用 pcluster createami

  2. 配置您的 Amazon Web Services 账户凭证,以便 Packer 可以代表您调用 Amazon API 操作。Packer 工作所需的一组最低权限记录在 Packer 文档 Amazon AMI Builder 主题的 IAM Task or Instance Role 部分。

  3. 可以使用 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. 步骤 4 中的命令运行 Packer,后者具体执行以下操作:

    1. 使用提供的基础 AMI 启动实例。

    2. 将 Amazon ParallelCluster 说明书应用于实例,以便安装相关软件和执行其他必要的配置任务。

    3. 停止实例。

    4. 从实例创建新的 AMI。

    5. 创建 AMI 之后终止该实例。

    6. 输出用于创建集群的新的 AMI ID 字符串。

  5. 要创建集群,请在集群配置内的 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。