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
).
- 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 (
Configurar PNP para permitir el tráfico a ELB
Para que los servicios ELB funcionen, debes configurar y aplicar tu propia política de ProjectNetworkPolicy
ingreso 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 recursoService
.
Crear un balanceador de carga externo
Crea ELBs con tres métodos diferentes en GDC:
- Usa la CLI gdcloud para crear ELBs.
- Usa la API Networking Kubernetes Resource Model (KRM) para crear ELBs.
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.