4.3. 配置多个云
您可以配置多个 Red Hat OpenStack Platform (RHOSP)云以针对单个 Service Telemetry Framework (STF)实例。当您配置多个云时,每个云都必须在其独特的消息总线主题上发送指标和事件。在 STF 部署中,智能网关实例侦听这些主题,以将信息保存到通用数据存储中。数据存储域中由智能网关存储的数据通过利用每个智能网关创建的元数据进行过滤。
图 4.1. 两个 RHOSP 云连接到 STF
要为多个云场景配置 RHOSP overcloud,请完成以下任务:
- 规划您要用于每个云的 AMQP 地址前缀。更多信息请参阅 第 4.3.1 节 “规划 AMQP 地址前缀”。
- 为每个云部署指标和事件消费者智能网关,以侦听对应的地址前缀。更多信息请参阅 第 4.3.2 节 “部署智能网关”。
- 使用唯一的域名配置每个云。更多信息请参阅 第 4.3.4 节 “设置唯一的云域”。
- 为 STF 创建基本配置。更多信息请参阅 第 4.1.3 节 “为 STF 创建基本配置”。
- 配置每个云,以便在正确地址上将其指标和事件发送到 STF。更多信息请参阅 第 4.3.5 节 “为多个云创建 Red Hat OpenStack Platform 环境文件”。
4.3.1. 规划 AMQP 地址前缀 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenStack Platform (RHOSP)节点通过两个数据收集器接收数据; collectd 和 Ceilometer。collectd-sensubility 插件需要唯一地址。这些组件将遥测数据或通知发送到对应的 AMQP 地址,如 collectd/telemetry。STF 智能网关侦听这些用于数据的 AMQP 地址。要支持多个云并识别哪个云生成监控数据,请配置每个云以将数据发送到唯一地址。向地址的第二部分添加云标识符前缀。以下列表显示了一些示例地址和标识符:
-
collectd/cloud1-telemetry -
collectd/cloud1-notify -
sensubility/cloud1-telemetry -
anycast/ceilometer/cloud1-metering.sample -
anycast/ceilometer/cloud1-event.sample -
collectd/cloud2-telemetry -
collectd/cloud2-notify -
sensubility/cloud2-telemetry -
anycast/ceilometer/cloud2-metering.sample -
anycast/ceilometer/cloud2-event.sample -
collectd/us-east-1-telemetry -
collectd/us-west-3-telemetry
4.3.2. 部署智能网关 复制链接链接已复制到粘贴板!
您必须为每个云部署每个数据收集类型的智能网关;一个用于 collectd 指标,一个用于 collectd 事件,一个用于 Ceilometer 指标,一个用于 Ceilometer 事件,另一个用于 collectd-sensubility 指标。配置每个智能网关,以侦听您为对应云定义的 AMQP 地址。要定义智能网关,请在 ServiceTelemetry 清单中配置 clouds 参数。
当您首次部署 STF 时,会创建智能网关清单,以定义单个云的初始智能网关。当您为多个云支持部署智能网关时,您可以为处理每个云的指标和事件数据的每个数据收集类型部署多个智能网关。初始智能网关在 cloud1 中定义,具有以下订阅地址:
| collector | type | 默认订阅地址 |
| collectd | metrics | collectd/telemetry |
| collectd | events | collectd/notify |
| collectd-sensubility | metrics | sensubility/telemetry |
| ceilometer | metrics | anycast/ceilometer/metering.sample |
| ceilometer | events | anycast/ceilometer/event.sample |
前提条件
- 您已确定了您的云命名方案。有关确定命名方案的详情,请参考 第 4.3.1 节 “规划 AMQP 地址前缀”。
-
您已创建了 clouds 对象列表。有关为
clouds参数创建内容的更多信息,请参阅 “clouds 参数”一节。
流程
- 登录到 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:oc project service-telemetry
$ oc project service-telemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑默认ServiceTelemetry 对象并使用您的配置添加clouds参数:警告长的云名称可能会超过最多 63 个字符的 pod 名称。确保
ServiceTelemetry名称default和clouds.name的组合没有超过 19 个字符。容器名称不能包含任何特殊字符,如-。将云名称限制为字母数字(a-z、0-9)。主题地址没有字符限制,可以与
clouds.name值不同。oc edit stf default
$ oc edit stf defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 ServiceTelemetry 对象。
验证每个智能网关正在运行。这可能需要几分钟,具体取决于智能网关的数量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.3. 删除默认智能网关 复制链接链接已复制到粘贴板!
在为多个云配置 Service Telemetry Framework (STF)后,如果不再使用它们,您可以删除默认的智能网关。Service Telemetry Operator 可以删除创建的 SmartGateway 对象,但不再列在 ServiceTelemetry clouds 列表中。要启用删除没有由 clouds 参数定义的 SmartGateway 对象,您必须在 ServiceTelemetry 清单中将 cloudsRemoveOnMissing 参数设置为 true。
如果您不想部署任何智能网关,请使用 clouds: [] 参数定义空云列表。
cloudsRemoveOnMissing 参数默认为禁用。如果启用了 cloudsRemoveOnMissing 参数,您可以删除当前命名空间中任何手动创建的 SmartGateway 对象,而无需恢复。
流程
-
使用您要管理 Service Telemetry Operator 的云对象列表定义您的
clouds参数。更多信息请参阅 “clouds 参数”一节。 编辑 ServiceTelemetry 对象并添加
cloudsRemoveOnMissing参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存修改。
验证 Operator 是否删除了智能网关。当 Operator 协调更改时,这可能需要几分钟时间:
oc get smartgateways
$ oc get smartgatewaysCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.4. 设置唯一的云域 复制链接链接已复制到粘贴板!
为确保 AMQ Interconnect 路由器从 Red Hat OpenStack Platform (RHOSP)到 Service Telemetry Framework (STF)的连接是唯一的,且没有冲突,请配置 CloudDomain 参数。
确保您不会更改现有部署中的主机或域名。只有新的云部署支持主机和域名配置。
流程
-
创建新环境文件,如 hostname
.yaml。 在环境文件中设置
CloudDomain参数,如下例所示:hostnames.yaml
parameter_defaults: CloudDomain: newyork-west-04 CephStorageHostnameFormat: 'ceph-%index%' ObjectStorageHostnameFormat: 'swift-%index%' ComputeHostnameFormat: 'compute-%index%'parameter_defaults: CloudDomain: newyork-west-04 CephStorageHostnameFormat: 'ceph-%index%' ObjectStorageHostnameFormat: 'swift-%index%' ComputeHostnameFormat: 'compute-%index%'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将新环境文件添加到部署中。
其他资源
- 第 4.3.5 节 “为多个云创建 Red Hat OpenStack Platform 环境文件”
- Overcloud 参数指南中的 核心 Overcloud 参数
4.3.5. 为多个云创建 Red Hat OpenStack Platform 环境文件 复制链接链接已复制到粘贴板!
要根据原始原始云标记流量,您必须使用特定于云的实例名称创建配置。创建 stf-connectors.yaml 文件并调整 CeilometerQdrEventsConfig、CeterQdrMetricsConfig 和 CollectdAmqpInstances 的值以匹配 AMQP 地址前缀方案。
如果启用了容器健康和 API 状态监控,还必须修改 CollectdSensubilityResultsChannel 参数。更多信息请参阅 第 5.9 节 “Red Hat OpenStack Platform API 状态和容器化服务健康状况”。
先决条件
- 您已从 STF 部署的 AMQ Interconnect 中检索 CA 证书。更多信息请参阅 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书”。
- 您已创建了 clouds 对象列表。有关为 clouds 参数创建内容的更多信息,请参阅 clouds 配置参数。
- 您已检索了 AMQ Interconnect 路由地址。更多信息请参阅 第 4.1.2 节 “检索 AMQ Interconnect 路由地址”。
- 您已为 STF 创建了基本配置。更多信息请参阅 第 4.1.3 节 “为 STF 创建基本配置”。
- 您已创建了唯一的域名环境文件。更多信息请参阅 第 4.3.4 节 “设置唯一的云域”。
流程
-
以
stack用户身份登录 undercloud 主机。 -
在
/home/stack目录中创建一个名为stf-connectors.yaml的配置文件。 在
stf-connectors.yaml文件中,配置MetricsQdrConnectors地址,以连接到 overcloud 部署上的 AMQ Interconnect。配置CeilometerQdrEventsConfig、CeiloQdrMetricsConfig、CollectdAmqpInstances和CollectdSensubilityResultsChannel主题值,以匹配您想要进行此云部署的 AMQP 地址。stf-connectors.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
resource_registry配置直接加载 collectd 服务,因为您没有为多个云部署包含collectd-write-qdr.yaml环境文件。 -
使用您在 第 4.1.2 节 “检索 AMQ Interconnect 路由地址” 中检索的值替换
host参数。 -
将
caCertFileContent参数替换为 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书” 中检索的内容。 -
将
MetricsQdrConnectors的主机子参数替换为您在 第 4.1.2 节 “检索 AMQ Interconnect 路由地址” 中检索的值。 -
设置
CeilometerQdrEventsConfig的主题值,以定义 Ceilometer 事件的主题。该值是云的唯一主题标识符,如cloud1-event。 -
设置
CeilometerQdrMetricsConfig.topic的topic值,以定义 Ceilometer 指标的主题。该值是云的唯一主题标识符,如cloud1-metering。 -
设置
CollectdAmqpInstances子参数,以定义 collectd 事件的主题。部分名称是云的唯一标识符,如cloud1-notify。 -
设置
CollectdAmqpInstances子参数,以定义 collectd 指标的主题。部分名称是云的唯一主题标识符,如cloud1-telemetry。 设置
CollectdSensubilityResultsChannel,以定义 collectd-sensubility 事件的主题。该值是云的唯一主题标识符,如sensubility/cloud1-telemetry。注意当您为 collectd 和 Ceilometer 定义主题时,您提供的值将转换为智能网关客户端用于侦听消息的完整主题。
Ceilometer 主题值转换为主题地址
anycast/ceilometer/<TOPIC>.sample和 collectd 主题值转换为主题地址collectd/<TOPIC>。sensubility 的值是完整的主题路径,没有将主题值从主题值转换为主题地址。有关引用完整主题地址的
ServiceTelemetry对象中的云配置示例,请参阅 “clouds 参数”一节。
-
-
确保
stf-connectors.yaml文件中的命名约定与智能网关配置中的spec.bridge.amqpUrl字段一致。例如,将CeilometerQdrEventsConfig.topic字段配置为cloud1-event的值。 -
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstack overcloud deployment命令中包含stf-connectors.yaml文件以及唯一域名环境文件hostname.yaml,以及其他与您环境相关的环境文件:警告如果您使用
collectd-write-qdr.yaml文件和自定义CollectdAmqpInstances参数,则数据将发布到自定义和默认主题。在多个云环境中,stf-connectors.yaml文件中的resource_registry参数的配置会加载 collectd 服务。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 部署 Red Hat OpenStack Platform overcloud。
4.3.5.1. 基于 Ansible 的 Service Telemetry Framework 部署 复制链接链接已复制到粘贴板!
本发行版本中提供了此功能的内容作为 文档预览,因此不由红帽完全验证。它只用于测试,不要在生产环境中使用。
从 Red Hat OpenStack Platform 17.0 开始,您可以预览使用 Ansible 而不是 Puppet 来部署服务 Telemetry Framework (STF)组件。Ansible 的使用具有以下优点:
- 在单个服务特定的 THT 变量下整合配置(MetricsQdrVars 和 CollectdVars)
- 将 QDR 模式从 mesh-mode 切换到 edge-only 和 back
- 部署堆栈中使用的技术较少,从而可以简化调试过程
要使用基于 Ansible 的部署,请在 stf-connectors.yaml 文件的 resource_registry 部分中替换单词 "ansible" 来代替 "puppet":
OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-ansible.yaml
OS::TripleO::Services::MetricsQdr: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/qdr-container-ansible.yaml
OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-ansible.yaml
OS::TripleO::Services::MetricsQdr: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/qdr-container-ansible.yaml
要设置配置,请使用特定于服务的 THT 变量,如下例所示:
parameter_defaults:
MetricsQdrVars:
tripleo_metrics_qdr_deployment_mode: edge-only
CollectdVars:
tripleo_collectd_amqp_host: stf.mycluster.example.com
parameter_defaults:
MetricsQdrVars:
tripleo_metrics_qdr_deployment_mode: edge-only
CollectdVars:
tripleo_collectd_amqp_host: stf.mycluster.example.com
上面引用的部署文件中可以找到受支持的配置参数的完整列表。https://github.com/openstack/tripleo-heat-templates/blob/stable/wallaby/deployment/metrics/qdr-container-ansible.yaml#L172
其他资源
- 有关如何验证部署的详情,请参考 第 4.1.6 节 “验证客户端安装”。
4.3.6. 从多个云查询指标数据 复制链接链接已复制到粘贴板!
Prometheus 中存储的数据根据从中提取的智能网关来有一个 服务 标签。您可以使用此标签从特定云查询数据。
要查询特定云的数据,请使用与 service 标签相关的匹配的 Prometheus promql 查询 ; 例如: collectd_uptime{service="default-cloud1-coll-meter"}。