Amazon OpenSearch Service 集群的蓝绿部署是什么?

2 分钟阅读
0

我想知道我的 Amazon OpenSearch Service 集群的蓝绿部署是什么。

简短描述

更改 OpenSearch Service 集群配置时,可以启动蓝绿部署。在蓝绿部署期间,在创建新的 OpenSearch Service 环境时,集群状态更改为“正在处理”。创建新的 OpenSearch 环境时,会发生以下情况:

  • 节点总数翻了一番。或者,节点总数等于新旧环境中的节点总数。
  • 预置新节点后,集群状态恢复为“活跃”,数据开始从旧节点迁移到新节点。
  • 数据迁移完成后,旧节点将终止。

OpenSearch Service 会执行一系列验证检查,以确认您的域在配置更改或版本升级期间是否符合更新条件。如果任意检查失败,您将在 OpenSearch Service 控制台中收到通知,该通知中包含了更新域之前必须修复的问题。尽管 OpenSearch Service 控制台的状态显示为“正在处理”,但要等到验证检查完成后,蓝绿部署才会启动。修复验证检查问题后,可以从 OpenSearch Service 控制台重试配置更改。有关详细信息,请参阅验证错误故障排除
注意:

解决方法

什么在 Amazon OpenSearch Service 集群中启动蓝绿部署

有关启动蓝绿部署的配置更改列表,请参阅通常会导致蓝绿部署的更改。您可以使用 AWS 控制台或带试运行的 API 测试您计划的域配置更改是否启动蓝绿部署。有关更多说明,请参阅确定更改是否会导致蓝绿部署
注意:

  • 蓝绿部署期间的双倍节点数不受 Amazon OpenSearch 服务限额的影响。例如,如果您的每个域限额有 80 个默认实例,而您的 OpenSearch 集群有 70 个实例。在蓝绿部署期间,您的 OpenSearch 集群可以使用 140 个实例。
  • 如果您所做的更改导致蓝绿部署,OpenSearch Service 会自动将您的域更新为最新的可用软件更新。有关详细信息,请参阅 OpenSearch Service 中的服务软件更新

蓝绿部署对性能的影响

在蓝绿部署期间,您的 Amazon OpenSearch Service 集群可用于接收传入的搜索和索引请求。但是,您可能会遇到以下性能问题:

  • 随着集群有更多节点需要管理,领导节点的使用量暂时增加。
  • 当 OpenSearch Service 将数据从旧节点复制到新节点时,搜索和索引延迟会增加。
  • 在蓝绿部署期间,随着集群负载的增加,传入请求的拒绝次数增加。

为避免延迟问题和请求被拒绝,最佳实践是在集群运行状况良好且网络流量较低时运行蓝绿部署。

为避免在蓝绿部署期间丢失数据,请确保遵循 OpenSearch Service 的操作最佳实践

检查蓝绿部署活动、审核日志和通知

AWS CloudTrail
OpenSearch Service 活动与其他 AWS 服务事件一起记录在 CloudTrail 事件的事件历史记录中。CloudTrail 将 OpenSearch Service 的所有配置 API 调用捕获为事件。有关详细信息,请参阅使用 CloudTrail 监视 OpenSearch Service API 调用

OpenSearch Service 审核日志
如果您的 Amazon OpenSearch Service 域使用精细访问控制,则可以为您的数据启用审核日志。审核日志可自定义,允许您跟踪用户在 OpenSearch 集群上的活动。OpenSearch Service 将审核日志发布到 CloudWatch Logs。有关详细信息,请参阅监控 OpenSearch Service 中的审核日志

OpenSearch Service 通知
Amazon OpenSearch Service 中的通知包含有关您的域性能和运行状况的重要信息。OpenSearch Service 会通知您有关服务软件更新、自动调优增强功能、集群运行状况事件和域错误的信息。您可以在 OpenSearch Service 控制台的“通知”面板中查看通知。有关详细信息,请参阅通知入门

配置更改持续时间

您的配置更改可能需要更长时间,具体取决于集群大小、工作负载、分片大小和分片数量。您可以在 OpenSearch Service 控制台的域状态下查看配置更改阶段的进度。您也可以使用 DescribeDomainChangeProgress API 查看配置更改阶段进度。

使用 cat 恢复 API 监控分片重新定位的状态。要查看哪些分片仍在重新定位,请使用以下命令语法:

curl -X GET "https://<end_point>/_cat/recovery?v=true&pretty" | awk '/peer/ {print $1" "$2" "$3" "$4" "$18}' | grep -v 100\.0\%

要按字节百分比列出分片重新定位,请使用以下命令语法:

curl -X GET "https://<end_point>/_cat/recovery?v=true&pretty" | awk '/peer/ {print $1" "$2" "$3" "$4" "$18}' | tr -d "%" | sort -k 5 -n

有关详细信息,请参阅 Elasticsearch 网站上的 cat 恢复 API
**注意:**要按字节百分比(位于第五列)对数据进行排序,必须为 -k 指定“5”。

如果您注意到分区重新定位的进度极慢,那么可能表示您的集群陷入了卡滞。

蓝绿部署停滞的原因

由于以下原因,您的蓝绿部署过程可能会陷入卡滞:

  • 配置更改之前的集群状态不正常。
  • JVM 内存压力一直很高。目标是将 JVM 内存压力保持在 75% 以下,以避免出现内存不足(OOM)问题。
  • CPU 利用率一直很高。目标是将 CPU 利用率保持在 80% 以下。
  • 集群上的分片太多或分片大小不正确。最佳实践是将分片数量保持在 10 GiB 到 50 GiB 之间。有关索引策略的详细信息,请参阅选择分区数量
  • 配置设置无效或同时更改了太多配置。请务必验证您的配置设置,然后等待,直到第一次配置更改完成再发送配置更改。
  • 磁盘空间或容量不足,无法完成重新定位过程或请求的实例类型。
  • 虚拟私有云(VPC)内的集群在请求的子网上缺少可用 IP。
  • 使用适合实例类型的卷大小。您的卷大小必须在限制范围内。
  • 使用索引设置,如“index.routing.allocation.require._name”或“NODE_NAME”或“index.blocks.write": true”。这些设置表示写入块。在继续操作之前,请务必从索引设置中删除这些设置。

有关详细信息,请参阅我的 OpenSearch Service 域为什么卡在“正在处理”状态?

相关信息

为什么我的 Amazon OpenSearch Service 域升级需要这么长时间?

在 OpenSearch Service 中引入自动调优

AWS 官方
AWS 官方已更新 9 个月前