第 9 章 使用标签对负载均衡服务对象进行分组


标签是您可以添加到 OpenShift (RHOSO)负载均衡服务(octavia)对象中的任意字符串,以便将它们归类到组中。标签不会影响负载均衡对象的功能:负载均衡器、侦听器、池、成员、运行状况监视器、规则和策略。您可以在创建对象时添加标签,或者在对象创建后添加或删除标签。

通过将特定标签与负载平衡对象关联,您可以运行 list 命令来过滤属于一个或多个组的对象。在管理负载平衡服务资源的使用、分配和维护时,可以将对象过滤到一个或多个组中。也可以通过自动配置管理工具来利用标记对象的功能。

本节中包含的主题有:

9.1. 在创建负载均衡服务对象时添加标签

当您在 OpenShift (RHOSO)负载均衡服务(octavia)对象中创建 Red Hat OpenStack Services 时,您可以添加您选择的标签。当标签就位时,您可以使用对应的 loadbalancer list 命令过滤负载均衡器、侦听器、池、成员、运行状况监视器、规则和策略。

先决条件

  • 管理员已为您创建一个项目,并为您提供了一个 clouds.yaml 文件来访问云。
  • python-openstackclient 软件包驻留在您的工作站上。

    $ dnf list installed python-openstackclient

流程

  1. 确认为您的云设置了系统 OS_CLOUD 变量:

    $ echo $OS_CLOUD
    my_cloud

    如果需要,重置变量:

    $ export OS_CLOUD=my_other_cloud

    作为替代方案,您可以在每次运行 openstack 命令时添加 --os-cloud <cloud_name > 选项指定云名称。

  2. 当为对象使用正确的带有 --tag <tag> 选项的 create 命令创建负载均衡器时,为它添加一个标签(tag):

    • openstack loadbalancer create --tag <tag> …​
    • openstack loadbalancer listener create --tag <tag> …​
    • OpenStack loadbalancer pool create --tag <tag> …​
    • OpenStack loadbalancer member create --tag <tag> …​
    • openstack loadbalancer healthmonitor create --tag <tag> …​
    • OpenStack loadbalancer l7policy create --tag <tag> …​
    • OpenStack loadbalancer l7rule create --tag <tag> …​

      注意

      标签可以是任何有效的 unicode 字符串,最大长度为 255 个字符。

      示例 - 创建并标记负载均衡器

      在这个示例中,负载均衡器 lb1 被创建并带有两个标签 FinanceSales

      $ openstack loadbalancer create --name lb1 \
      --vip-subnet-id public_subnet --tag Finance --tag Sales
      注意

      负载平衡服务对象可以具有一个或多个标签。对您要添加的每个附加标签重复这个选项。

      示例 - 创建并标记监听程序

      在这个示例中,监听程序 listener1 被创建并带有一个标签 Sales

      $ openstack loadbalancer listener create --name listener1 --protocol HTTP --protocol-port 80 --tag Sales lb1

      示例 - 创建并标记池

      在本例中,池 pool1 被创建,标签为 Sales

      $ openstack loadbalancer pool create --name pool1 \
      --lb-algorithm ROUND_ROBIN --listener listener1 \
      --protocol HTTP --tag Sales

      示例 - 在池中创建成员并为其标记

      在这个示例中,在 pool1 中创建成员 192.0.2.10,标签为 Sales

      $ openstack loadbalancer member create --name member1 \
      --subnet-id private_subnet --address 192.0.2.10 --protocol-port 80 \
      --tag Sales pool1

      示例 - 创建并标记运行状况监控器

      在这个示例中,健康监控器 healthmon1 被创建,带有一个标签 Sales

      $ openstack loadbalancer healthmonitor create --name healthmon1 \
      --delay 15 --max-retries 4 --timeout 10 --type HTTP --url-path / \
      --tag Sales pool1

      示例 - 创建并标记 L7 策略

      在本例中,使用标签 Sales 创建 L7 策略 policy1

      $ openstack loadbalancer l7policy create --action REDIRECT_PREFIX \
      --redirect-prefix https://www.example.com/ \
      --name policy1 http_listener --tag Sales

      示例 - 创建并标记 L7 规则

      在本例中,创建有标签 Sales 的 L7 规则 rule1

      $ openstack loadbalancer l7rule create --compare-type STARTS_WITH \
      --type PATH --value / --tag Sales policy1

验证

  • 确认您创建的对象存在,并且包含您为对象使用适当的 show 命令添加的标签。

    示例

    在本例中,show 命令在 loadbalancer, lb1 上运行:

    $ openstack loadbalancer show lb1

    输出示例

    +---------------------+--------------------------------------+
    | admin_state_up      | True                                 |
    | availability_zone   | None                                 |
    | created_at          | 2024-08-06T19:34:15                  |
    | description         |                                      |
    | flavor_id           | None                                 |
    | id                  | 7975374b-3367-4436-ab19-2d79d8c1f29b |
    | listeners           |                                      |
    | name                | lb1                                  |
    | operating_status    | ONLINE                               |
    | pools               |                                      |
    | project_id          | 2eee3b86ca404cdd977281dac385fd4e     |
    | provider            | amphora                              |
    | provisioning_status | ACTIVE                               |
    | updated_at          | 2024-08-07T13:30:17                  |
    | vip_address         | 172.24.3.76                          |
    | vip_network_id      | 4c241fc4-95eb-491a-affe-26c53a8805cd |
    | vip_port_id         | 9978a598-cc34-47f7-ba28-49431d570fd1 |
    | vip_qos_policy_id   | None                                 |
    | vip_subnet_id       | e999d323-bd0f-4469-974f-7f66d427e507 |
    | tags                | Finance                              |
    |                     | Sales                                |
    +---------------------+--------------------------------------+

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.