En esta página, se explica cómo crear una subred global en Google Distributed Cloud (GDC) con aislamiento de aire y usar esa subred para un balanceador de cargas externo (ELB).
Las subredes globales te permiten configurar subredes que pueden usar operaciones de balanceo de cargas externas en varias zonas de tu organización de GDC. El balanceo de cargas ofrece los beneficios de un mejor rendimiento, confiabilidad y disponibilidad de las aplicaciones y los servicios, ya que distribuye el tráfico de red en varios servidores. Para obtener más información sobre las subredes globales para el balanceo de cargas, consulta Acerca de las subredes para el balanceo de cargas.
Esta página está dirigida a los desarrolladores que forman parte del grupo de operadores de aplicaciones y que desean administrar el balanceo de cargas de su organización. Para obtener más información, consulta Audiences for GDC air-gapped documentation (Públicos para la documentación de GDC aislada del aire).
Antes de comenzar
Para crear una subred global y configurarla para los ELB, debes tener lo siguiente:
- Ser propietario del proyecto para el que configuras el balanceador de cargas Para obtener más información, consulta Crea un proyecto.
Los roles de identidad y acceso necesarios son los siguientes:
- Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de Load Balancer (
load-balancer-admin
). - Pídele al administrador de IAM de tu organización que te otorgue el rol de administrador del balanceador de cargas global (
global-load-balancer-admin
). - Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de organización de subred (
subnet-org-admin
). - Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de proyectos de subred (
subnet-project-admin
).
Para obtener más información, consulta las descripciones de los roles predefinidos.
- Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de Load Balancer (
Crea una subred global principal
La subred global principal que creas en esta sección sirve como el grupo de direcciones IP del que provienen las direcciones IP de tu ELB. La subred debe incluir la etiqueta ipam.gdc.goog/network-segment: data
. Puedes especificar la subred principal con el campo spec.parentReference.name
.
Tienes dos opciones para configurar el CIDR de esta subred principal:
- Crea una subred con una configuración de CIDR estática
- Crea una subred con una configuración de CIDR dinámica
Para obtener más información sobre la diferencia entre las configuraciones de CIDR estáticas y dinámicas, consulta Configuración de CIDR estática y dinámica.
Crea una subred con una configuración de CIDR estática
Usa una configuración de CIDR estática cuando necesites un control preciso sobre tu espacio de direcciones IP.
Esta subred tiene un tipo de Branch
. Para obtener más información sobre los tipos de subredes raíz, rama y hoja, consulta Jerarquía de subredes.
Para crear una subred principal global con una configuración de CIDR estática, agrega el bloque CIDR que elegiste al campo spec.ipv4Request.cidr
:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
cidr: STATIC_CIDR
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Reemplaza lo siguiente:
GLOBAL_API_SERVER
: Es la ruta de acceso de kubeconfig del servidor de la API de administración global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.ELB_PARENT_SUBNET_NAME
: Es el nombre elegido para tu subred principal global del ELB.STATIC_CIDR
: Es el bloque CIDR específico que deseas asignar a esta subred principal, como10.0.10.0/27
.PARENT_NAME
: Es el nombre de la subred principal existente a partir de la cual se crea esta subred nueva.
Para configurar esta subred de modo que funcione con ELB, debes crear una subred hoja para el ELB.
Crea una subred con una configuración de CIDR dinámica
La configuración dinámica de CIDR asigna automáticamente un bloque CIDR disponible de un tamaño especificado desde la subred principal. Esto simplifica la administración de direcciones IP, especialmente en entornos más grandes.
Esta subred tiene un tipo de Branch
. Para obtener más información sobre los tipos de subredes raíz, rama y hoja, consulta Jerarquía de subredes.
Para crear una subred principal global con un CIDR dinámico, configura el campo spec.ipv4Request.prefixLength
con la longitud de prefijo elegida:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
prefixLength: PREFIX_LENGTH
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Reemplaza lo siguiente:
ELB_PARENT_SUBNET_NAME
: Es el nombre que elegiste para la subred principal del ELB, comolb-global-lancer-elb-subnet
.STATIC_CIDR
: Es el bloque CIDR específico que deseas usar, como10.0.10.0/27
. Esta variable solo se aplica a la configuración de CIDR estática.PARENT_NAME
: Es el nombre de la subred principal existente a partir de la cual se crea esta subred nueva, comodefault-vpc-workload-cidr
.PREFIX_LENGTH
: Es la longitud del prefijo elegida para el CIDR asignado de forma dinámica, como27
. Esta variable solo se aplica a la configuración de CIDR dinámica.
Para configurar esta subred de modo que funcione con ELB, debes crear una subred hoja para el ELB.
Crea una subred hoja para el ELB
Después de configurar la subred principal global, debes crear una subred hoja para asignar una sola dirección IP al servicio de ELB global. Esta subred hoja debe tener un valor de campo type
de Leaf
y debe residir en el mismo espacio de nombres del proyecto que los recursos del balanceador de cargas, como ForwardingRule
, BackendService
y Backend
.
Para crear la subred de hoja y vincularla al ELB, sigue estos pasos:
Crea una subred hoja con un valor de
prefixLength
de32
, ya que está diseñada para asignar una sola dirección IP. El valorparentReference
hace referencia a la subred global principal creada anteriormente:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/network-segment: data name: ELB_IP_SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_REF namespace: platform type: Leaf EOF
Reemplaza lo siguiente:
ELB_IP_SUBNET_NAME
: Es el nombre que elegiste para la subred hoja, comolb-project-elb-ip
.PROJECT_NAMESPACE
: Es el espacio de nombres de Kubernetes correspondiente a tu proyecto en el que se encuentran tus objetos de ELB, por ejemplo,lb-project
.PARENT_REF
: Es el nombre de la subred principal de la que esta subred hoja obtiene su dirección IP, como la subred global principal que creaste anteriormente.
Conecta la subred de hoja recién creada, que contiene la dirección IP asignada, con el recurso
ForwardingRuleExternal
de tu ELB. En tu recursoForwardingRuleExternal
, actualiza el campospec.cidrRef.name
para hacer referencia al nombre de la subred hoja que creaste en el paso anterior:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleExternal metadata: name: FRI_NAME namespace: PROJECT_NAMESPACE spec: ports: - port: PORT protocol: PROTOCOL backendServiceRef: name: BES_NAME cidrRef: name: LEAF_SUBNET_NAME EOF
Reemplaza lo siguiente:
FRI_NAME
: Es el nombre que elegiste para el objetoForwardingRuleExternal
, comonginx-elb-static-fr
.PORT
: Es el número de puerto en el que tu ELB escucha el tráfico entrante, como80
.PROTOCOL
: Es el protocolo de red que usa tu ELB, comoTCP
oUDP
.BES_NAME
: Es el nombre del recursoBackendService
asociado con este recursoForwardingRuleExternal
, comonginx-bes
.LEAF_SUBNET_NAME
: Es el nombre de la subred hoja que creaste en el paso anterior, comolb-project-elb-ip
.