NCP creará un grupo y un servidor virtual del equilibrador de carga de Capa 4 para cada puerto de servicio.

Información sobre esta función:
  • Se admiten los protocolos TCP y UDP.
  • Cada servicio tendrá una dirección IP exclusiva.
  • Al servicio se le asigna una dirección IP de un grupo de direcciones IP externas según el campo loadBalancerIP de la definición del equilibrador de carga. El campo loadBalancerIP puede estar vacío, tener una dirección IP o el nombre o identificador de un grupo de direcciones IP. Si el campo loadBalancerIP está vacío, se asignará la dirección IP del grupo de direcciones IP externas especificada en la opción external_ip_pools_lb de la sección [nsx_v3] de ncp.ini. Si la opción external_ip_pools_lb no existe, se utiliza el grupo que external_ip_pools especifica. El servicio de equilibrador de carga se expone en esta dirección IP y en el puerto del servicio.
  • Puede utilizar otro grupo de direcciones IP cambiando la configuración y reiniciando NCP.
  • El grupo de direcciones IP especificado por loadBalancerIP debe tener la etiqueta scope: ncp/owner, tag: cluster:<cluster_name>.

  • En el modo Directiva, se admite un servicio de tipo LoadBalancer sin un selector. Para este tipo de servicio, la dirección IP de SNAT del equilibrador de carga de NSX será la IP del servicio de tipo equilibrador de carga. La IP de SNAT del equilibrador de carga de NSX se actualizará si se actualiza la dirección IP del servicio de tipo equilibrador de carga. Tenga en cuenta que un servicio sin un selector no puede configurarse como endpoint de otro servicio sin un selector.
  • En el modo Directiva, puede establecer la anotación ncp/transparent-lb en true para deshabilitar SNAT en el grupo de equilibradores de carga. Esta función solo se admite en una topología de un solo nivel.
  • De forma predeterminada, NSX tiene límites en la cantidad de servidores virtuales, grupos de servidores y miembros de grupo para un equilibrador de carga. Puede omitir estos límites estableciendo [nsx_v3] relax_scale_validation en true.
  • De forma predeterminada, NCP no aplica el límite de cantidad de miembros del grupo para ningún equilibrador de carga. Puede cambiar este comportamiento con el parámetro [nsx_v3] ncp_enforced_pool_member_limit. Esta función solo se admite en el modo Directiva y requiere que [nsx_v3] l4_lb_auto_scaling se establezca en false. Para ncp_enforced_pool_member_limit, las opciones son:
    • DEACTIVATE: NCP no aplica el límite de miembros del grupo.
    • ACTIVATE: NCP aplica el límite de miembros de grupo para evitar que cualquier equilibrador de carga utilice demasiada CPU o memoria. Tenga en cuenta que si relax_scale_validation se establece en false y members_per_small_lbs o members_per_medium_lbs se establecen en un valor superior al límite de escala de NSX, se aplicará la escala de NSX, lo que hace innecesaria esta configuración.
  • Se anota un error en un servicio. La clave de error es ncp/error.loadbalancer. Los posibles errores son:
    • ncp/error.loadbalancer: IP_POOL_NOT_FOUND

      Este error indica que especifica loadBalancerIP: <nsx-ip-pool>, pero <nsx-ip-pool> no existe. El servicio estará inactivo. Para solucionar el error, especifique un grupo de direcciones IP válido, y elimine y vuelva a crear el servicio.

    • ncp/error.loadbalancer: IP_POOL_EXHAUSTED

      Este error indica que especifica loadBalancerIP: <nsx-ip-pool>, pero el grupo de direcciones IP ya agotó las direcciones IP. El servicio estará inactivo. Para solucionar el error, especifique un grupo de direcciones IP que tenga direcciones IP disponibles, y elimine y vuelva a crear el servicio.

    • ncp/error.loadbalancer: IP_POOL_NOT_UNIQUE

      Este error indica que varios grupos de direcciones IP tienen el nombre que loadBalancerIP especifica: <nsx-ip-pool>. El servicio estará inactivo.

    • ncp/error.loadbalancer: POOL_ACCESS_DENIED

      Este error indica que el grupo de direcciones IP que loadBalancerIP especifica no tiene la etiqueta scope: ncp/owner, tag: cluster:<cluster_name> o que el clúster especificado en la etiqueta no coincide con el nombre del clúster de Kubernetes.

    • ncp/error.loadbalancer: LB_VIP_CONFLICT

      Este error indica que la dirección IP especificada en el campo loadBalancerIP es la misma que la dirección IP de un servicio activo. El servicio estará inactivo.

  • El equilibrador de carga de capa 4 admite la escala automática. Si se crea o se modifica un servicio de equilibrador de carga de Kubernetes de manera que requiera servidores virtuales adicionales y el equilibrador de carga de capa 4 existente no tiene la capacidad, se creará un nuevo equilibrador de carga de capa 4. NCP también eliminará un equilibrador de carga de capa 4 que ya no tenga servidores virtuales asociados. Esta función está habilitada de forma predeterminada. Si desea deshabilitar esta función, deberá establecer el valor false para l4_lb_auto_scaling en el ConfigMap de NCP.
  • Al crear un servicio de tipo LoadBalancer, puede especificar el parámetro loadBalancerSourceRanges. Esta función solo se admite en el modo Directiva. Por ejemplo:
    kind: Service
    metadata:
      name: nginx-service-lb
      labels:
        app: nginx
    spec:
      type: LoadBalancer
      loadBalancerSourceRanges:
        - "10.30.88.116/24"
      ports:
        - port: 80
          targetPort: 80
          protocol: TCP
          name: tcp
    ...

    El equilibrador de carga de NSX que se crea solo permitirá el tráfico desde las direcciones IP de origen especificadas. Para verificarlo en NSX Manager, consulte el Control de lista de acceso del servidor virtual. Permitirá el acceso a un grupo específico. Este grupo contendrá las direcciones IP especificadas en loadBalancerSourceRanges. Para ver este grupo, desplácese hasta Inventario > Grupos.