Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页面介绍了如何针对以下实例执行数据库和集群故障切换测试: 高弹性环境。
针对环境的故障切换测试会模拟 数据中心。在这种情况下,如果可用区级服务中断,可用区级服务中断 可能会同时发生数据库中断通过执行 您可以监控高弹性环境的性能 并检查这对您的 DAG 和任务有何影响。
准备工作
如需执行故障切换测试,您的账号必须具有以下角色和权限:
composer.environments.update
权限。请参阅 使用 IAM 进行访问权限控制 查看具有此权限的角色列表。Kubernetes Engine 集群管理员 (
roles/container.clusterAdmin
) 角色可在环境的集群上运行kubectl
命令。作为 作为替代方案 Kubernetes RBAC 角色 GKE
如果您使用的是授权网络,并且您的 必须在可访问
kubectl
GKE 集群的控制平面端点。这取决于 设置对环境控制平面端点的访问权限 可以使用多个选项如需了解详情,请参阅 在专用 IP 环境中运行命令。
检查您的环境是否正常运行
确保仅在 健康环境
如需检查您的环境是否正常运行,请执行以下操作:
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到监控标签页。
确保所有健康指标均为绿色。
执行数据库故障切换测试
您可以通过以下方式执行数据库故障切换测试(模拟可用区级服务中断): 使用 Google Cloud CLI 命令触发它例如,您可能希望 来衡量环境的数据库所花费的时间 切换到另一个可用区
如需为您的环境执行数据库故障切换测试,请执行以下操作:
确保您的环境健康状况良好。
获取环境数据库的主可用区:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
替换以下内容:
ENVIRONMENT_NAME
:您的 Cloud Composer 环境的名称。LOCATION
:环境所在的区域。
示例:
gcloud composer environments fetch-database-properties \ example-environment \ --location us-central1
启动数据库故障切换测试:
gcloud composer environments database-failover \ ENVIRONMENT_NAME \ --location LOCATION
替换以下内容:
ENVIRONMENT_NAME
:您的 Cloud Composer 环境的名称。LOCATION
:环境所在的区域。
示例:
gcloud composer environments database-failover \ example-environment \ --location us-central1
等待数据库故障切换测试完成。该过程可能会占用 到 3 分钟
检查环境数据库的主要可用区是否已更改:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
请检查环境的运行状况指标,确保 您的环境健康状况良好。
在以下情况下,环境的数据库已准备好进行另一次故障切换: 可用于故障切换的数据库 (
composer.googleapis.com/environment/database/available_for_failover
) 环境指标会变为True
。如需详细了解如何查看您的 环境指标,请参阅 监控环境。
执行环境的集群故障切换测试
您可以为环境的集群执行故障切换测试,该测试 模拟可用区级服务中断例如,您可能想要衡量 您的环境切换到另一个可用区所用的时间。
检查您的环境是否正常运行
在开始测试之前,请确保 您的环境健康状况良好。
为环境的集群配置凭据
如需获取集群凭据,请执行以下操作:
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
点击查看集群详情。
点击连接。
复制并执行显示的 Google Cloud CLI 命令。
例如:
gcloud container clusters get-credentials \ us-central1-exam-db23ee12-gke \ --region us-central1 \ --project example-project
检查环境的集群
检查在环境的集群中运行工作负载的可用区和节点。 之后,您可以使用此信息来模拟可用区级服务中断。你还可以 同时执行故障切换测试,以了解 环境的集群会执行故障切换。
检查节点和可用区:
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
检查 Pod:
kubectl get pods --all-namespaces \ -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \ --field-selector metadata.namespace!=kube-system
查看有关 Pod 的更多详细信息:
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
排空节点
选择您要模拟服务中断情况的可用区。如果将集群
将故障切换测试与数据库故障切换测试结合使用,
建议您为自己的环境选择
高可用性 Cloud SQL 实例。
例如,如果 Cloud SQL 主实例在 us-central1-a
中运行,
那么您可以先模拟整个 us-central1-a
可用区的服务中断情况
执行数据库故障切换测试,然后在
us-central1-a
.
以下命令模拟了一组节点在 特定可用区它会强制将 Pod 从指定可用区内的节点中逐出,并且 会阻止在这些节点上重新调度 Pod。因为新 Pod 不能 系统会向集群中添加新节点
此命令不会影响在 composer-system
中运行的工作负载
命名空间。您可能会在命令输出中看到相关的错误消息。这个
不会影响故障切换测试。所选可用区中存在的节点
都仍被标记为不可调度
如需模拟所选可用区中的集群可用区故障,请执行以下操作:
kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction
替换以下内容:
ZONE
:您要在其中模拟集群可用区故障的可用区。
检查环境指标
![模拟可用区服务中断期间的环境指标](https://cloud.google.com/static/composer/docs/images/composer-2-failover-metrics.png?authuser=0000&hl=zh-cn)
- </ph>
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到监控标签页。
检查以下指标是否为“绿色”在故障切换期间 操作,还是保持“红色”状态最多持续几分钟。
- 环境运行状况
- 调度程序检测信号
- Web 服务器运行状况
- 数据库运行状况
- 活跃工作器数
- 活跃调度器数
- 活跃 Web 服务器数
- 有效触发器
请注意,模拟服务中断已标记为“集群维护” 操作”。
您无需执行任何额外操作即可返回环境的 并在测试后执行故障切换就绪性任务。在测试期间, 环境的集群会自动添加新节点来替换现有节点 可能受到了这次模拟服务中断的影响