配置 amphorav2 提供程序的其他步骤

amphorav2 提供程序驱动程序提高了控制平面弹性。如果在负载均衡器配置操作期间控制平面主机发生故障,则备用控制器可以恢复正在进行的配置并完成请求。通过在持久化后端中写入任务状态信息并通过 jobboard 监控作业声明,解决了资源卡在 PENDING_* 状态的问题。

如果您希望使用基于 jobboard 的控制器进行负载均衡器服务,则需要执行以下其他步骤。

此提供程序驱动程序也可以在没有 jobboard 及其依赖项(额外的数据库、Redis/Zookeeper)的情况下运行。这是默认设置,而 jobboard 仍然是一个实验性功能。

先决条件

Amphorav2 提供程序需要创建额外的数据库 octavia_persistence 来存储任务状态和执行进度信息。此外,为了监控 taskflow 作业的进度,amphorav2 提供程序使用 jobboard。Redis 或 Zookeeper 键值存储可以用作 jobboard 后端。操作员应根据特定云环境选择更合适的后端。默认情况下为 Redis。在安装 octavia 包时,应使用 extras [zookeeper] 或 [redis] 安装键值存储客户端。

  1. 创建数据库,请完成以下步骤

    • 使用数据库访问客户端以 root 用户身份连接到数据库服务器

      # mysql
      
    • 创建 octavia_persistence 数据库

      CREATE DATABASE octavia_persistence;
      
    • 授予对 octavia_persistence 数据库的适当访问权限

      GRANT ALL PRIVILEGES ON octavia_persistence.* TO 'octavia'@'localhost' \
      IDENTIFIED BY 'OCTAVIA_DBPASS';
      GRANT ALL PRIVILEGES ON octavia_persistence.* TO 'octavia'@'%' \
      IDENTIFIED BY 'OCTAVIA_DBPASS';
      

      将 OCTAVIA_DBPASS 替换为合适的密码。

  2. 安装所需的键值后端(Redis 或 Zookeper)。

octavia 组件的附加配置

  1. 编辑 /etc/octavia/octavia.conf 文件 [task_flow] 部分

    • 配置持久化后端的数据库访问

       [task_flow]
       persistence_connection = mysql+pymysql://octavia:OCTAVIA_DBPASS@controller/octavia_persistence
    
    Replace OCTAVIA_DBPASS with the password you chose for the Octavia databases.
    
    • 设置所需的 jobboard 后端及其配置

    [task_flow]
    jobboard_enabled = True
    jobboard_backend_driver = 'redis_taskflow_driver'
    jobboard_backend_hosts = KEYVALUE_HOST_IPS
    jobboard_backend_port = KEYVALUE_PORT
    jobboard_backend_password = OCTAVIA_JOBBOARDPASS
    jobboard_backend_namespace = 'octavia_jobboard'
    

    将 OCTAVIA_JOBBOARDPASS 替换为您为 Octavia 键值存储选择的密码。将 KEYVALUE_HOST_IPS 和 KEYVALUE_PORT 替换为所选键值存储正在使用的 IP 地址和端口。

  2. 填充 octavia 数据库

    # octavia-db-manage --config-file /etc/octavia/octavia.conf upgrade_persistence