Los balanceadores de cargas externos (ELB) exponen servicios fuera del proyecto desde las direcciones IP de un grupo asignado al proyecto desde el grupo más grande de IPs externas de instancias.
Las direcciones IP virtuales (VIP) de ELB no entran en conflicto entre las organizaciones y son únicas en todas las organizaciones. Por este motivo, debes usar los servicios de ELB solo para los servicios a los que los clientes externos al proyecto necesariamente deben acceder.
Las cargas de trabajo que se ejecutan dentro del 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 de manera efectiva tráfico saliente del proyecto antes de regresar al servicio interno.
Antes de comenzar
Para configurar los servicios de ELB, debes tener lo siguiente:
- Ser propietario del proyecto para el que configuras el balanceador de cargas Para obtener más información, consulta Cómo crear un proyecto.
- Una política de entrada
ProjectNetworkPolicy(PNP) personalizada para permitir el tráfico a este servicio de ELB. Para obtener más información, consulta Configura PNP para permitir el tráfico al ELB. Los roles de identidad y acceso necesarios son los siguientes:
- Administrador de NetworkPolicy del proyecto: Tiene acceso para administrar las políticas de red del proyecto en el espacio de nombres del proyecto. Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de NetworkPolicy del proyecto (
project-networkpolicy-admin). - Administrador de balanceador de cargas: Pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de balanceador de cargas (
load-balancer-admin).
- Administrador de NetworkPolicy del proyecto: Tiene acceso para administrar las políticas de red del proyecto en el espacio de nombres del proyecto. Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de NetworkPolicy del proyecto (
Configura PNP para permitir el tráfico al ELB
Para que los servicios de ELB funcionen, debes configurar y aplicar tu propia política de entrada ProjectNetworkPolicy personalizada para permitir el tráfico a este servicio de ELB. Especifica 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
Reemplaza lo siguiente:
MANAGEMENT_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API de administración. Si aún no generaste un archivo kubeconfig para el servidor de la API en la zona de destino, consulta Acceder para obtener más detalles.PROJECT: Es el nombre de tu proyecto de GDC.CIDR: Es el CIDR externo desde el que se debe acceder al ELB. Esta política es obligatoria, ya que el balanceador de cargas externo usa el retorno directo del servidor (DSR), que conserva la dirección IP externa de origen y omite el balanceador de cargas en la ruta de retorno.PORT: Es el puerto de backend en los Pods detrás del balanceador de cargas. Este valor se encuentra en el campo.spec.ports[].targetPortdel manifiesto del recursoService.
Crea un balanceador de cargas externo
Crea ELB con tres métodos diferentes en GDC:
- Usa la CLI de gcloud para crear ELB.
- Usa la API del modelo de recursos de Kubernetes (KRM) de redes para crear ELB.
Puedes segmentar las cargas de trabajo de pods o VM con la API de KRM y la CLI de gdcloud. Solo puedes segmentar cargas de trabajo en el clúster en el que se crea el objeto Service cuando usas el servicio de Kubernetes directamente en el clúster de Kubernetes.