En esta página se explica cómo configurar un balanceador de carga de red de paso a través interno o un balanceador de carga de aplicación interno (vista previa) para que se registre automáticamente en Directorio de Servicios.
Cuando crees tu balanceador de carga, puedes registrarlo como endpoint en un espacio de nombres y un servicio de Directorio de servicios que ya tengas. Las aplicaciones cliente pueden usar Directorio de servicios (mediante HTTP o gRPC) o DNS (si has creado una zona DNS de Directorio de servicios) para resolver la dirección del servicio de balanceador de carga interno y conectarse a él directamente.
Limitaciones
La integración de Directorio de servicios con el balanceo de carga interno tiene las siguientes limitaciones:
- El registro automático solo se aplica a los balanceadores de carga internos y de red. Puedes registrar los servicios de balanceo de carga de Google Kubernetes Engine mediante la integración de GKE. Puedes registrar balanceadores de carga globales, así como entradas y gateways de Google Kubernetes Engine, llamando a la API Service Directory.
- Solo puedes usar el registro automático al crear una regla de reenvío. El registro automático mediante la actualización de la CLI de Google Cloud para una regla de reenvío ya existente no está disponible.
- Puede registrar balanceadores de carga internos en Directorio de servicios en los proyectos host o de servicio de una configuración de red de VPC compartida. Sin embargo, todos los componentes de balanceo de carga y los backends deben estar en el mismo proyecto. Para obtener más información, consulta las limitaciones del balanceo de carga interno.
- Directorio de servicios no proporciona conectividad, lo que significa que, aunque Directorio de servicios almacena la dirección IP virtual del balanceador de carga interno, buscar el balanceador de carga interno en Directorio de servicios no garantiza que puedas conectarte a la dirección IP virtual.
Antes de empezar
Para seguir estas instrucciones, necesitas lo siguiente:
Ya debes tener un espacio de nombres y un servicio de Directorio de servicios. Si no lo has hecho, crea un espacio de nombres y un servicio siguiendo el procedimiento descrito en Configurar Service Directory.
El espacio de nombres y el servicio de Directorio de servicios deben estar en el mismo proyecto y región que la regla de reenvío del balanceador de carga interno que estás creando.
Ya debes haber configurado los recursos necesarios para crear una regla de reenvío de balanceador de carga interno.
- Para obtener información sobre cómo crear un balanceador de carga de red de paso a través interno, consulta el artículo Configurar un balanceador de carga de red de paso a través interno.
- Para obtener información sobre cómo crear un balanceador de carga de aplicación interno, consulta el artículo Configurar un balanceador de carga de aplicación interno.
Configurar reglas de reenvío para registrar un balanceador de carga interno en Directorio de servicios
Debe configurar una regla de reenvío para registrar el balanceador de carga interno en Directorio de servicios. Para registrar un balanceador de carga de red de paso a través interno o un balanceador de carga de aplicación interno, consulta las siguientes secciones.
Registrar un balanceador de carga de red de paso a través interno
Para registrar un balanceador de carga de red de paso a través interno, ejecuta el comando gcloud compute forwarding-rules
create
y define la marca service-directory-registration
:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --region=REGION \ --load-balancing-scheme=INTERNAL \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --address=RESERVED_IP_ADDRESS \ --ip-protocol=PROTOCOL_TYPE \ --ports=PORT_NUMBER \ --backend-service=BACKEND_SERVICE_NAME \ --backend-service-region=REGION \ --service-directory-registration=SD_SERVICE_NAME
Haz los cambios siguientes:
FORWARDING_RULE_NAME
: nombre de la regla de reenvío que quieras crearREGION
: la región en la que se creará la regla de reenvíoNETWORK_NAME
: la red a la que se aplica esta regla de reenvíoSUBNET_NAME
: la subred a la que se aplica esta regla de reenvíoRESERVED_IP_ADDRESS
: la dirección IP a la que sirve la regla de reenvíoPROTOCOL_TYPE
: el protocolo IP que usará la reglaPORT_NUMBER
: una lista de puertos separados por comasBACKEND_SERVICE_NAME
: servicio de backend de destino que recibe el tráfico.SD_SERVICE_NAME
: nombre completo del servicio de Directorio de servicios en el que quieres registrar el endpoint. Debe estar en el mismo proyecto y en la misma región que la regla de reenvío que se está creando. Por ejemplo: projects/PROJECT
/locations/REGION
/namespaces/NAMESPACE_NAME
/services/SERVICE_NAME
.
Registrar un balanceador de carga de aplicación interno
Para registrar un balanceador de carga de aplicación interno regional, ejecuta el comando gcloud compute forwarding-rules
create
y define la marca service-directory-registration
:
gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \ --region=REGION \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK_NAME \ --address=RESERVED_IP_ADDRESS \ --target-https-proxy=PROXY_NAME \ --target-https-proxy-region=PROXY_REGION \ --ports=PORT_NUMBER \ --service-directory-registration=SD_SERVICE_NAME
Haz los cambios siguientes:
FORWARDING_RULE_NAME
: nombre de la regla de reenvío que quieras crearREGION
: la región en la que se creará la regla de reenvíoNETWORK_NAME
: la red a la que se aplica esta regla de reenvíoRESERVED_IP_ADDRESS
: la dirección IP a la que sirve la regla de reenvíoPROXY_NAME
: el proxy de destino que recibe el tráficoPROXY_REGION
: la región del proxy en la que se va a operarPORT_NUMBER
: una lista de puertos separados por comasSD_SERVICE_NAME
: nombre completo del servicio de Directorio de servicios en el que quieres registrar el endpoint. Este servicio debe estar en el mismo proyecto y región que la regla de reenvío que se va a crear. Por ejemplo: projects/PROJECT
/locations/REGION
/namespaces/NAMESPACE_NAME
/services/SERVICE_NAME
.
Verificar el endpoint
Uno o varios endpoints de Directorio de servicios que se crean al registrar un balanceador de carga interno tienen las siguientes características:
- El endpoint tiene el mismo nombre que la regla de reenvío con el número de puerto especificado (
<forwarding rule name>-<port>
). Por ejemplo, si crea una regla de reenvíoRULE
con--port=8080
, obtendrá un endpoint llamadoRULE-8080
. En la misma regla, si ha especificado dos puertos--port=8080, 8081
, obtendrá dos endpoints:RULE-8080
yRULE-8081
. Si especificas--port=ALL
, el punto final de Directorio de servicios se registra con el puerto0
. Si eres el propietario del balanceador de carga interno, debes asegurarte de que el llamador de la API sepa a qué puerto debe conectarse. - No puedes modificar ni eliminar el endpoint mediante la API pública de Service Directory. El endpoint solo se elimina automáticamente cuando eliminas la regla de reenvío. Esto significa que no puedes eliminar el servicio y el espacio de nombres en el que reside el endpoint mientras exista la regla de reenvío.
- El endpoint en sí no se factura, aunque se aplican los precios habituales a las llamadas a la API que se hagan al endpoint.
Para confirmar que se ha creado el endpoint, resuelve el servicio en Directorio de servicios. Debería ver un endpoint con el mismo nombre que la regla de reenvío y el número de puerto especificado.
Para resolver el servicio en Directorio de servicios, haz lo siguiente:
gcloud
Ejecuta el comando gcloud service-directory services
resolve
:
gcloud service-directory services resolve SD_SERVICE_NAME \ --namespace=SD_NAMESPACE_NAME \ --location=REGION
Haz los cambios siguientes:
SD_SERVICE_NAME
: nombre del servicio del directorio de servicios que se va a resolver. Debe estar en el nombre del espacio de nombres de Directorio de servicios.SD_NAMESPACE_NAME
: el nombre que le has dado al espacio de nombres que contiene tu servicio.REGION
: la Trusted Cloud región que contiene el espacio de nombres. Debe ser la misma región en la que has creado la regla de reenvío.
Opcional: Crear una zona de Directorio de servicios con Cloud DNS
Puedes resolver los puntos finales de Directorio de servicios que se hayan registrado mediante esta integración usando el DNS como cualquier otro punto final de Directorio de servicios. Para crear una zona de Directorio de servicios con Cloud DNS, consulta el artículo Configurar una zona de Directorio de servicios.
Para comprobar que la zona está configurada correctamente, puedes ejecutar una consulta DNS de tu zona de Directorio de servicios. Para obtener instrucciones sobre cómo hacer consultas mediante un DNS, consulta Hacer consultas mediante un DNS. Si tu zona se ha configurado correctamente, deberías ver la dirección IP de tu balanceador de carga interno en el resultado del comando.
Limpieza
Para eliminar los recursos que has creado, sigue estos pasos:
gcloud
Para eliminar la regla de reenvío, ejecuta el comando
gcloud compute forwarding-rules delete
:gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION \
Haz los cambios siguientes:
FORWARDING_RULE_NAME
: el nombre de la regla de reenvío que has creadoREGION
: la región de la regla de reenvío
Para obtener más información, consulta Eliminar una regla de reenvío.
Para confirmar que al eliminar la regla de reenvío se ha eliminado automáticamente el punto final de Directorio de servicios, ejecuta el comando
gcloud service-directory services resolve
descrito en la sección Verificar el punto final de tu servicio de Directorio de servicios.Para eliminar la zona, si has creado una, sigue las instrucciones que se indican en Eliminar una zona gestionada.
Para eliminar el espacio de nombres y el servicio de Directorio de servicios, consulta Eliminar recursos.
Siguientes pasos
- Para obtener una descripción general de Service Directory, consulta el artículo Descripción general de Service Directory.
- Para encontrar soluciones a los problemas habituales que pueden surgir al usar Service Directory, consulta la sección Solución de problemas.