VMware Integrated OpenStack 3.0 o 3.1 es compatible con LBaaS v2.0. De forma predeterminada, LBaaS v2.0 se habilita tras completar el proceso de instalación o actualización de VMware Integrated OpenStack.

Antes de empezar

Nota:

VMware Integrated OpenStack no admite LBaaS v1.0.

Esta tarea solo se aplica a VMware Integrated OpenStack implementado con NSX.

Por qué y cuándo se efectúa esta tarea

Esta tarea implica la creación de un monitor de estado y su asociación con el grupo de LBaaS que contiene las instancias de servidor de LBaaS. El monitor de estado es un servicio de Neutron que comprueba si las instancias siguen ejecutándose en el puerto de protocolo especificado.

Procedimiento

  1. Mediante SSH, inicie sesión en VMware Integrated OpenStack Manager.
  2. Pase a usar el usuario raíz.
    sudo su -
  3. Habilite LBaaS v2.0.
    viocli lbaasv2-enable 

    Opción

    Descripción

    -d DEPLOYMENT

    Indica el nombre de la implementación de VMware Integrated OpenStack.

  4. En el administrador de VMware Integrated OpenStack, use SSH para iniciar sesión en el nodo de Neutron.
  5. Pase a usar el usuario raíz.
    sudo su -
  6. Cree un enrutador exclusivo.
    neutron router-create --router_type=exclusive <router name>
  7. Conecte una subred al enrutador nuevo.
    neutron net-create <network name>
    neutron subnet-create <network name> <CIDR value> --name <subnet name>
    neutron router-interface-add <router name or id> <subnet name or id>
  8. Cree el equilibrador de carga.

    Este paso incluye la creación del equilibrador de carga, el agente de escucha y el grupo de equilibradores de carga.

    1. Cree el equilibrador de carga y especifique la subred de VIP de equilibrio de carga.
      neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>

      Parámetro

      Descripción

      name

      Indica el nombre para el nuevo equilibrador de carga.

      vip-subnet-id

      Especifica la subred de VIP del nuevo equilibrador de carga. Solo pueden agregarse al grupo miembros de esta subred.

    2. Cree un agente de escucha para el nuevo equilibrador de carga.
      neutron lbaas-listener-create \
      --loadbalancer LOAD_BALANCER_1_NAME \
      --protocol <protocol type> \
      --protocol-port <protocol port> 
      --name LISTENER_1_NAME

      Parámetro

      Descripción

      loadbalancer

      Especifica el equilibrador de carga que creó en el paso secundario anterior.

      protocol type

      Establece el tipo de protocolo del agente de escucha.

      • TCP

      • HTTP

      • HTTPS

      protocol port

      Indica el puerto del protocolo.

      name

      Especifica un nombre para el nuevo agente de escucha.

    3. Cree un grupo de LBaaS.
      neutron lbaas-pool-create \
      --lb-algorithm <load balancing method> \
      --listener LISTENER_1_NAME \
      --protocol <protocol type> \
      --name LB_POOL_1

      Parámetro

      Descripción

      lb-algorithm

      Especifique un método de equilibrio de carga:

      • IP_HASH

        Selecciona un servidor según un hash de las direcciones IP de origen y destino de cada paquete.

      • LEAST_CONN

        Distribuye las solicitudes del cliente entre varios servidores según la cantidad de conexiones que ya tiene el servidor. Las conexiones nuevas se envían al servidor con la menor cantidad de conexiones.

      • ROUND_ROBIN

        Se usa cada servidor de forma alternada según el peso asignado a cada uno. Este proceso es el algoritmo más fluido y justo cuando el tiempo de procesamiento del servidor permanece distribuido de manera equitativa.

      • URI

        La parte izquierda de la URI, antes del signo de pregunta, se verifica y se divide por el peso total de los servidores en ejecución. El resultado designa qué servidor recibe la solicitud, lo que garantiza que una solicitud siempre se dirija al mismo servidor siempre y cuando todos los servidores estén disponibles.

      listener

      Especifica el agente de escucha que creó en el paso secundario anterior.

      protocolo

      Indica el protocolo que usarán los miembros del grupo.

      • TCP

      • HTTP

      • HTTPS

      name

      Especifica un nombre para el nuevo grupo.

  9. Cree las instancias para los servidores y el cliente.
    nova boot --image <image-uuid> --flavor <flavor> <server 1 name>
    nova boot --image <image-uuid> --flavor <flavor> <server 2 name>
    nova boot --image <image-uuid> --flavor 1 <client name>
  10. Agregue las instancias del servidor al grupo de LBaaS que creó.
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 1 IP> \
    --protocol-port 80 <pool name>
    
    neutron lbaas-member-create  \
    --subnet <subnet-id> --address <server 2 IP> \
    --protocol-port 80 <pool name>
  11. Configure el monitor de estado.
    neutron lbaas-healthmonitor-create \
    --delay DELAY_IN_SECONDS --type [HTTP | TCP] --max-retries NUMBER \
    --timeout TIMEOUT_IN_SECONDS --pool LBAAS_POOL

    Parámetro

    Descripción

    delay

    El tiempo en segundos entre el envío de sondas a los miembros.

    type

    Uno de los tipos de monitores de estado predefinidos. Especifique HTTP o TCP.

    max-retries

    Cantidad de errores de conexión permitidos antes de cambiar el estado del miembro a INACTIVO.

    timeout

    Cantidad máxima de segundos que espera un monitor para que se establezca una conexión antes de que se agote el tiempo de espera.

    Nota:

    El valor del tiempo de espera debe ser menor que el valor de retraso.

    pool

    Establece el grupo de LBaaS que se supervisará.

  12. (Opcional) : Envíe solicitudes de prueba para validar la configuración de LBaaS.
    1. Cree una prueba en el archivo index.html.
    2. Desde el mismo directorio, ejecute una solicitud simple.
      # sudo python -m SimpleHTTPServer 80
    3. Inicie sesión en la instancia del cliente.
    4. Ejecute el comando wget para ver si la carga de las solicitudes se equilibra correctamente entre los dos servidores del grupo.
       # wget -O - http://<vip-ip>