9.4. 将查询限制为元数据服务
为了保护 OpenShift (RHOSO)上的 Red Hat OpenStack Services (RHOSO)环境,如拒绝服务(DoS)攻击等网络威胁,网络服务(neutron)让管理员能够限制虚拟机实例可以查询计算元数据服务的速度。管理员通过将值分配给网络服务用来配置 HAProxy 服务器来执行速率限制的一组参数。HAProxy 服务器在元数据服务内运行。
要为节点集合添加元数据速率限制,请完成这些任务:
-
创建
ConfigMap
自定义资源(CR)来配置节点。 - 为运行 playbook 的功能创建自定义服务。
-
在自定义服务中包含
ConfigMap
CR。
如下详细步骤:
先决条件
-
在工作站上安装了
oc
命令行工具。 -
以具有
cluster-admin
权限的用户身份登录到可访问 RHOSO 控制平面的工作站。 您的 RHOSP 环境使用 IPv4 网络。
目前,网络服务不支持 IPv6 网络上的元数据速率限制。
您有一个调度的维护窗口。
此流程要求您重启 OVN 元数据服务。
流程
创建一个
ConfigMap
CR 来为元数据速率限制定义新配置,并将它保存到工作站上的 YAML 文件中,如neutron-metadata-rate-limit.yaml
。注意不要使用默认配置文件的名称,因为它将覆盖基础架构配置,如
transport_url
。为以下速率限制参数设置值:
rate_limit_enabled
-
可让您限制元数据请求的速度。默认值为
false
。将值设为true
以启用元数据速率限制。 ip_versions
-
IP 版本
4
用于控制查询率的元数据 IP 地址。RHOSP 尚不支持 IPv6 网络的元数据速率限制。 base_window_duration
-
查询请求限制的时间范围(以秒为单位)。默认值为
10
秒。 base_query_rate_limit
-
base_window_duration
期间允许的最大请求数。默认值为10
个请求。 burst_window_duration
-
允许请求超过
base_window_duration
的时间 span (以秒为单位)。默认值为10
秒。 burst_query_rate_limit
burst_window_duration
期间允许的最大请求数。默认值为10
个请求。Example
在本例中,网络服务被配置为 基础 时间和速率,允许实例在 60 秒内查询 IPv4 元数据服务 IP 地址 6 次。网络服务也被配置为 突发 时间和速率,允许每个时间缩短 10 秒期间的 2 个查询率提高 2 个查询:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用
ConfigMap
CR 文件创建ConfigMap
对象。Example
oc create -f neutron-metadata-rate-limit.yaml -n openstack
$ oc create -f neutron-metadata-rate-limit.yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建定义自定义服务的
OpenStackDataPlaneService
CR,并将其保存到工作站上的 YAML 文件中,如neutron-metadata-rate-limit-service.yaml
:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: neutron-metadata-rate-limit
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: neutron-metadata-rate-limit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
ConfigMap
CR 添加到自定义服务中,并为运行此服务的节点集的单元指定Secret
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过引用 Ansible playbook 或将 Ansible play 包含在
playbookContents
字段中来指定用于创建自定义服务的 Ansible 命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
metadata-rate-limit
服务:oc apply -f neutron-metadata-rate-limit -n openstack
$ oc apply -f neutron-metadata-rate-limit -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认创建了自定义服务:
oc get openstackdataplaneservice neutron-metadata-rate-limit -o yaml -n openstack
$ oc get openstackdataplaneservice neutron-metadata-rate-limit -o yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow