9.4. 将查询限制为元数据服务


为了保护 OpenShift (RHOSO)上的 Red Hat OpenStack Services (RHOSO)环境,如拒绝服务(DoS)攻击等网络威胁,网络服务(neutron)让管理员能够限制虚拟机实例可以查询计算元数据服务的速度。管理员通过将值分配给网络服务用来配置 HAProxy 服务器来执行速率限制的一组参数。HAProxy 服务器在元数据服务内运行。

要为节点集合添加元数据速率限制,请完成这些任务:

  1. 创建 ConfigMap 自定义资源(CR)来配置节点。
  2. 为运行 playbook 的功能创建自定义服务。
  3. 在自定义服务中包含 ConfigMap CR。

如下详细步骤:

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
  • 您的 RHOSP 环境使用 IPv4 网络。

    目前,网络服务不支持 IPv6 网络上的元数据速率限制。

  • 您有一个调度的维护窗口。

    此流程要求您重启 OVN 元数据服务。

流程

  1. 创建一个 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 个查询:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: neutron-metadata-rate-limit
    data:
       20-neutron-metadata-rate.conf: |
         [metadata_rate_limiting]
         rate_limit_enabled = True
         ip_versions = 4
         base_window_duration = 60
         base_query_rate_limit = 6
         burst_window_duration = 10
         burst_query_rate_limit = 2
         ...
    Copy to Clipboard Toggle word wrap
  2. 使用 ConfigMap CR 文件创建 ConfigMap 对象。

    Example

    $ oc create -f neutron-metadata-rate-limit.yaml -n openstack
    Copy to Clipboard Toggle word wrap

  3. 创建定义自定义服务的 OpenStackDataPlaneService CR,并将其保存到工作站上的 YAML 文件中,如 neutron-metadata-rate-limit-service.yaml

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: neutron-metadata-rate-limit
    Copy to Clipboard Toggle word wrap
  4. ConfigMap CR 添加到自定义服务中,并为运行此服务的节点集的单元指定 Secret CR:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: neutron-metadata-rate-limit
    spec:
      dataSources:
        - configMapRef:
            name: neutron-metadata-rate-limit
        - secretRef:
            name: neutron-ovn-metadata-agent-neutron-config
        - secretRef:
            name: nova-metadata-neutron-config
        - configMapRef:
            name: neutron-metadata-rate-limit
      tlsCerts:
        default:
          contents:
          - dnsnames
          - ips
          networks:
          - ctlplane
          issuer: osp-rootca-issuer-ovn
          keyUsages:
            - digital signature
            - key encipherment
            - client auth
      caCerts: combined-ca-bundle
      containerImageFields:
      - EdpmNeutronMetadataAgentImage
    Copy to Clipboard Toggle word wrap
  5. 通过引用 Ansible playbook 或将 Ansible play 包含在 playbookContents 字段中来指定用于创建自定义服务的 Ansible 命令:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: neutron-metadata-rate-limit
    spec:
      playbook: osp.edpm.neutron_metadata
      dataSources:
        - configMapRef:
            name: neutron-metadata-rate-limit
        - secretRef:
            name: neutron-ovn-metadata-agent-neutron-config
        - secretRef:
            name: nova-metadata-neutron-config
      tlsCerts:
        default:
          contents:
          - dnsnames
          - ips
          networks:
          - ctlplane
          issuer: osp-rootca-issuer-ovn
          keyUsages:
            - digital signature
            - key encipherment
            - client auth
      caCerts: combined-ca-bundle
      containerImageFields:
      - EdpmNeutronMetadataAgentImage
    Copy to Clipboard Toggle word wrap
  6. 创建 metadata-rate-limit 服务:

    $ oc apply -f neutron-metadata-rate-limit -n openstack
    Copy to Clipboard Toggle word wrap

验证

  • 确认创建了自定义服务:

    $ oc get openstackdataplaneservice neutron-metadata-rate-limit -o yaml -n openstack
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat