Configurar balanceadores de carga externos

Los balanceadores de carga externos (ELB) exponen servicios fuera del proyecto desde las direcciones IP de un pool asignadas al proyecto desde el pool de IPs externas de instancias más grande.

Las direcciones IP virtuales (VIP) de ELB no entran en conflicto entre organizaciones y son únicas en todas las organizaciones. Por este motivo, solo debes usar los servicios de ELB para los servicios a los que los clientes externos al proyecto deban acceder necesariamente.

Las cargas de trabajo que se ejecutan en el proyecto pueden acceder a los servicios de ELB siempre que habilites las cargas de trabajo para que salgan del proyecto. Este patrón de tráfico requiere tráfico saliente del proyecto antes de volver al servicio interno.

Antes de empezar

Para configurar los servicios de ELB, debe tener lo siguiente:

  • Ser propietario del proyecto en el que vas a configurar el balanceador de carga. Para obtener más información, consulta Crear un proyecto.
  • Una política de entrada de ProjectNetworkPolicy (PNP) personalizada para permitir el tráfico a este servicio de ELB. Para obtener más información, consulta Configurar PNP para permitir el tráfico a ELB.
  • Los roles de identidad y acceso necesarios:

    • Administrador de NetworkPolicy de proyectos: tiene acceso para gestionar las políticas de red de proyectos en el espacio de nombres del proyecto. Pide al administrador de gestión de identidades y accesos de tu organización que te asigne el rol Administrador de NetworkPolicy de proyectos (project-networkpolicy-admin).
    • Administrador de balanceadores de carga: pide al administrador de IAM de tu organización que te asigne el rol Administrador de balanceadores de carga (load-balancer-admin).

Configurar PNP para permitir el tráfico a ELB

Para que los servicios ELB funcionen, debes configurar y aplicar tu propia política de ProjectNetworkPolicyingreso personalizada para permitir el tráfico a este servicio ELB. Especifique la dirección CIDR externa para permitir el tráfico a este ELB:

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT
  name: allow-inbound-traffic-from-external
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - ipBlock:
        cidr: CIDR
    ports:
    - protocol: TCP
      port: PORT
EOF

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER: la ruta de kubeconfig del servidor de la API de gestión. Si aún no has generado un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Iniciar sesión para obtener más información.
  • PROJECT: el nombre de tu proyecto de GDC.
  • CIDR: el CIDR externo desde el que se debe acceder al ELB. Esta política es obligatoria porque el balanceador de carga externo usa la opción de retorno directo del servidor (DSR), que conserva la dirección IP externa de origen y evita el balanceador de carga en la ruta de retorno.
  • PORT: el puerto de backend de los pods que hay detrás del balanceador de carga. Este valor se encuentra en el campo .spec.ports[].targetPort del manifiesto del recurso Service.

Crear un balanceador de carga externo

Crea ELBs con tres métodos diferentes en GDC:

Puedes orientar las cargas de trabajo de pods o de máquinas virtuales mediante la API de KRM y la CLI de gdcloud. Solo puedes orientar las cargas de trabajo del clúster en el que se crea el objeto Service cuando usas el servicio de Kubernetes directamente en el clúster de Kubernetes.