本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EC2 实例配置
Amazon EC2 实例设置可使用基础设施即代码或使用 Amazon 命令行界面或 Amazon 控制台手动应用。我们建议基础设施即代码自动化,以减少手动步骤并确保一致性。
重要
必须在所有群集节点上执行以下配置。确保节点间的一致性以防止出现群集问题。
分配或审阅 Pacemaker IAM 角色
必须将这两个集群资源 IAM 策略分配给与您的 Amazon EC2 实例关联的 IAM 角色。如果 IAM 角色未与您的实例关联,请为集群操作创建一个新的 IAM 角色。
-
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
选择您的一个群集节点。
-
在导航窗格中,选择操作 → 安全 → 修改 IAM 角色。
-
选择包含在 “为 Pacemaker 创建 IAM 角色和策略” 中创建的策略的 IAM 角色。
-
选择更新 IAM 角色。
-
对集群中的所有节点重复这些步骤。
分配或查看安全组
必须将在 “ Amazon 修改集群通信的安全组” 部分创建的安全组规则分配给您的 Amazon EC2 实例。如果安全组未与您的实例关联,或者所分配的安全组中不存在所需的规则,请添加该安全组或更新规则。
-
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
选择您的一个群集节点。
-
在 “安全” 选项卡中,查看安全组、端口和流量来源。
-
如果需要,请选择操作 → 安全 → 更改安全组。
-
在 “关联的安全组” 下,搜索并选择所需的组。
-
选择保存。
-
对集群中的所有节点重复这些步骤。
您可以使用 Amazon CLI 验证实例上的安全组规则:
$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute groupSet
分配辅助 IP 地址
辅助 IP 地址用于在 corosync 中为群集创建冗余通信信道(辅助环)。群集节点可以使用辅助环进行通信,以防底层网络中断。
IPs 它们仅用于集群配置。辅助弹性网络接口 (ENI) IPs 提供与辅助弹性网络接口 (ENI) 相同的容错能力。有关更多信息,请参阅您的 EC2 实例的辅助 IP 地址。
您可以使用 Amazon CLI 验证实例上的辅助 IP 配置:
$ aws ec2 describe-instances --instance-id <instance_id> \ --query 'Reservations[*].Instances[*].NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' \ --output text
验证:
-
每个实例返回来自同一子网的两个 IP 地址
-
主网络接口 (eth0) 均 IPs 已分配
-
次要版本稍后 IPs 将用于 corosync.conf 中的 ring0_addr 和 ring1_addr
禁用 Source/Destination 检查
默认情况下,Amazon EC2 实例 source/destination 会执行检查,要求实例是其发送或接收的任何流量的来源或目的地。在 pacemaker 集群中,必须禁用从叠加 IP 接收流量的两个实例的 source/destination 检查。
以下 Amazon 控制台或 Amazon CLI 命令可用于修改该属性。
要确认特定实例的属性值,请使用以下命令。该值false
表示已禁用 source/destination 检查
$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute sourceDestCheck
输出
{ "InstanceId": "i-xxxxinstidforhost1", "SourceDestCheck": { "Value": false } }
查看停止保护
为确保可以执行 STONITH 操作,您必须确保对属于起搏器集群的 Amazon EC2 实例禁用停止保护。如果修改了默认设置,请对两个实例使用以下命令通过 Amazon CLI 禁用停止保护。
以下 Amazon 控制台或 CLI 命令可用于修改该属性。
要确认特定实例的属性值,请使用以下命令。该值false
表示可以使用 Amazon CLI 停止实例。
$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute disableApiStop
输出
{ "InstanceId": "i-xxxxinstidforhost1", "DisableApiStop": { "Value": false } }
查看自动恢复
故障发生后,必须以协调的方式恢复集群控制的操作。这有助于确保故障原因已知并得到解决,并且集群的状态符合预期。例如,验证是否没有待处理的屏蔽操作。
以下 Amazon 控制台或 CLI 命令可用于修改该属性。
要确认特定实例的属性值,请使用以下命令。该值disabled
表示不会尝试自动恢复。
$ aws ec2 describe-instances --instance-ids <instance_id> --query 'Reservations[*].Instances[*].MaintenanceOptions.AutoRecovery'
输出:
[ [ "disabled" ] ]