本页介绍了在实验期间发生故障类型为“Fail Compute”的故障时会发生什么情况,以及在故障注入测试无法停止实验时应采取的措施。
“计算失败”故障的运作方式
“Fail Compute”故障使用资源标记来标记虚拟机,并使用防火墙政策(其中包含以这些标记为目标的规则)来阻止所有入站和出站流量。此设置可使目标资源看起来像是发生了中断,同时确保它们保持完好无损且可快速恢复。
此故障的目标可以是以下各项:
- 虚拟机实例
- 基于指定资源标记的虚拟机
- 指定可用区级或区域级托管式实例组 (MIG) 中的虚拟机
- 可用区中的非 MIG 虚拟机和可用区级 MIG 中的虚拟机。
- 一个区域中的非 MIG 和所有 MIG 中的虚拟机。
实验执行期间会发生什么
随着实验历经各个状态,所涉及的资源会发生以下变化。
资源 |
|
|
|
虚拟机 |
无 |
绑定资源标记 |
解除绑定资源标记 |
MIG / RMIG |
无 |
关闭自动修复和自动扩缩功能(如果它们处于启用状态) |
恢复自动修复和自动扩缩设置 |
标记 |
为实验创建唯一的 TagValue 资源 |
无 |
删除 TagValue |
防火墙政策 |
创建系统级 FirewallPolicy 资源 |
填充 DENY 规则并将政策绑定到相关 VPC |
从 VPC 解绑并删除 FirewallPolicy |
紧急手动恢复
如果发生灾难性后端故障,导致 Fault Injection Testing 无法自动停止实验,您可以手动移除绑定到受影响虚拟机的资源标记,从而手动恢复与虚拟机资源的连接。以这些标记为目标的系统防火墙政策将不再适用,从而有效地将虚拟机与隔离故障分离。
所需权限
您需要以下 IAM 权限:
- 查看虚拟机实例所需的权限:
compute.instances.getcompute.instances.list
- 查看和移除标记绑定所需的权限:
resourcemanager.tagValueBindings.listresourcemanager.tagValueBindings.delete
使用 Google Cloud 控制台界面手动恢复
如需使用 Google Cloud 控制台执行恢复,请执行以下操作:
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 选择受隔离故障影响的特定虚拟机实例。
- 在实例详情页面中,找到用于管理标记的部分。
- 确定与“Fault Injection Testing Fail Compute”故障关联的实验专用标记绑定。
- 从虚拟机中移除标记绑定。
移除标记后,关联的防火墙政策将不再以该虚拟机为目标,连接将恢复。
使用 gcloud CLI 进行手动恢复
您可以使用 Google Cloud CLI 手动从虚拟机中移除实验标记绑定。在以下命令中,将 TAG_VALUE_NAME,
PROJECT_NUMBER, ZONE 和 VM_NAME 替换为适合您环境的特定值。
首先,通过列出虚拟机的当前标记绑定来检索实验特定的标记值名称:
gcloud resource-manager tag bindings list --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
使用上一个命令的输出确定删除步骤所需的 TAG_VALUE_NAME:
gcloud resource-manager tag bindings delete --tag-value=TAG_VALUE_NAME --resource=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_NAME
移除标记后,关联的防火墙政策将不再以该虚拟机为目标,连接将恢复。