本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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" ] ]