En esta página, se proporciona información para configurar un balanceador de cargas de red de transferencia interno o un balanceador de cargas de aplicaciones interno (versión preliminar) para que se registre automáticamente en el Directorio de servicios.
Cuando creas tu balanceador de cargas, puedes registrarlo como un extremo en un espacio de nombres y un servicio del Directorio de servicios existentes que elijas. Luego, las aplicaciones cliente pueden usar el Directorio de servicios (con HTTP o gRPC) o el DNS (si creaste una zona de DNS del Directorio de servicios) para resolver la dirección del servicio del balanceador de cargas interno y conectarse directamente a él.
Limitaciones
La integración del Directorio de servicios con el balanceo de cargas interno tiene las siguientes limitaciones:
- El registro automático solo se aplica a los balanceadores de cargas internos y de red. Puedes registrar los servicios de balanceo de cargas de Google Kubernetes Engine con la integración de GKE. Puedes registrar los balanceadores de cargas globales, y los ingresos y las puertas de enlace de Google Kubernetes Engine llamando a la API de Directory de servicios.
- Puedes usar el registro automático solo en el momento de la creación de la regla de reenvío. No está disponible el registro automático con la actualización de Google Cloud CLI para una regla de reenvío ya existente.
- Puedes registrar balanceadores de cargas internos en el Directorio de servicios en los proyectos de host o servicio de una configuración de red de VPC compartida. Sin embargo, todos los componentes y backends del balanceo de cargas deben existir en el mismo proyecto. Para obtener más detalles, consulta las limitaciones del balanceo de cargas interno.
- El Directorio de servicios no proporciona conectividad, lo que significa que, aunque el Directorio de servicios almacena la dirección IP virtual del balanceador de cargas interno, buscar el balanceador de cargas interno en el Directorio de servicios no garantiza que puedas conectarte a la dirección IP virtual.
Antes de comenzar
Estas instrucciones requieren lo siguiente:
Ya debes tener un espacio de nombres y un servicio del Directorio de servicios. De lo contrario, crea un espacio de nombres y un servicio con el procedimiento que se indica en Configura el Directorio de servicios.
El espacio de nombres y el servicio del directorio de servicios deben estar en el mismo proyecto y región que la regla de reenvío del balanceador de cargas interno que estás creando.
Ya debes haber configurado los recursos necesarios para crear una regla de reenvío de balanceador de cargas interno.
- Para obtener información sobre cómo crear un balanceador de cargas de red de transferencia interna, consulta Configura un balanceador de cargas de red de transferencia interna.
- Si deseas obtener información para crear un balanceador de cargas de aplicaciones interno, consulta Configura un balanceador de cargas de aplicaciones interno.
Configura reglas de reenvío para registrar un balanceador de cargas interno en el Directorio de servicios
Debes configurar una regla de reenvío para registrar el balanceador de cargas interno en el Directorio de servicios. Para registrar un balanceador de cargas de red de transferencia interno o un balanceador de cargas de aplicaciones interno, consulta las siguientes secciones.
Registra un balanceador de cargas de red de transferencia interno
Para registrar un balanceador de cargas de red de transferencia interno, ejecuta el comando gcloud compute forwarding-rules
create
y establece 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
Reemplaza lo siguiente:
FORWARDING_RULE_NAME
: un nombre para la regla de reenvío que deseas 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 que entrega la regla de reenvíoPROTOCOL_TYPE
: el protocolo IP que entregará la reglaPORT_NUMBER
: una lista de puertos separados por comasBACKEND_SERVICE_NAME
: el servicio de backend de destino que recibe el tráficoSD_SERVICE_NAME
: el nombre completamente calificado del servicio de Directorio de servicios en el que deseas registrar el extremo. Debe estar en el mismo proyecto y región que la regla de reenvío que se crea. Por ejemplo: projects/PROJECT
/locations/REGION
/namespaces/NAMESPACE_NAME
/services/SERVICE_NAME
.
Registra un balanceador de cargas de aplicaciones interno
Para registrar un balanceador de cargas de aplicaciones interno regional, ejecuta el comando gcloud compute forwarding-rules
create
y
establece 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
Reemplaza lo siguiente:
FORWARDING_RULE_NAME
: un nombre para la regla de reenvío que deseas 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 que entrega 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 operaráPORT_NUMBER
: una lista de puertos separados por comasSD_SERVICE_NAME
: el nombre completamente calificado del servicio de Directorio de servicios en el que deseas registrar el extremo. Este servicio debe estar en el mismo proyecto y región que la regla de reenvío que se crea. Por ejemplo: projects/PROJECT
/locations/REGION
/namespaces/NAMESPACE_NAME
/services/SERVICE_NAME
.
Verifica el extremo
Uno o más extremos del Directorio de servicios que se crean cuando registras un balanceador de cargas interno tienen las siguientes características:
- El extremo tiene el mismo nombre que el de la regla de reenvío con el número de puerto especificado (
<forwarding rule name>-<port>
). Por ejemplo, si creas una regla de reenvíoRULE
con--port=8080
, obtienes un extremo llamadoRULE-8080
. Para la misma regla, si especificaste dos puertos--port=8080, 8081
, obtienes dos extremos,RULE-8080
yRULE-8081
. Si especificas--port=ALL
, el extremo del Directorio de servicios se registrará con el puerto0
. Si eres el propietario del balanceador de cargas interno, debes asegurarte de que el llamador de la API sepa a qué puerto conectarse. - No puedes modificar ni borrar el extremo con la API pública de Service Directory. Solo cuando borras la regla de reenvío, el extremo se borra automáticamente. Esto significa que no puedes borrar el servicio ni el espacio de nombres en el que reside el extremo mientras exista la regla de reenvío.
- No se factura el extremo en sí, aunque los detalles de precios normales se aplican a cualquier llamada a la API al extremo.
Para confirmar que se creó el extremo, resuelve el servicio en el Directorio de servicios. Deberías ver un extremo con el mismo nombre que el de la regla de reenvío con el número de puerto especificado.
Para resolver el servicio en el 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
Reemplaza lo siguiente:
SD_SERVICE_NAME
: Es el nombre del servicio del Directorio de servicios que se resolverá. Debe residir en el nombre del espacio de nombres del directorio de servicios.SD_NAMESPACE_NAME
: Es el nombre que le asignaste al espacio de nombres que contiene tu servicio.REGION
: Es la Google Cloud región que contiene el espacio de nombres. Debe ser la misma que la región en la que creaste la regla de reenvío.
Opcional: Crea una zona del Directorio de servicios con Cloud DNS
Puedes resolver los extremos del Directorio de servicios que se registran a través de esta integración con DNS, como cualquier otro extremo del Directorio de servicios. Para crear una zona del Directorio de servicios con Cloud DNS, consulta Cómo configurar una zona del Directorio de servicios.
Para verificar que tu zona esté configurada correctamente, puedes ejecutar una consulta de DNS de tu zona del directorio de servicios. Si deseas obtener instrucciones para realizar consultas con DNS, consulta Cómo realizar consultas con DNS. Si tu zona está configurada correctamente, deberías ver la dirección IP de tu equilibrador de carga interno en el resultado del comando.
Limpieza
Para borrar los recursos que creaste, haz lo siguiente:
gcloud
Para borrar la regla de reenvío, ejecuta el comando
gcloud compute forwarding-rules delete
:gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION \
Reemplaza lo siguiente:
FORWARDING_RULE_NAME
: Es el nombre de la regla de reenvío que creaste.REGION
: la región para la regla de reenvío
Para obtener más detalles, consulta Cómo borrar una regla de reenvío.
Para confirmar que la eliminación de la regla de reenvío borró automáticamente el extremo del Directorio de servicios, ejecuta el comando
gcloud service-directory services resolve
que se describe en la sección Verificación del extremo de tu servicio de Directorio de servicios.Si creaste una zona, sigue las instrucciones en Borra una zona administrada para borrarla.
Para borrar el espacio de nombres y el servicio del Directorio de servicios, consulta Cómo borrar recursos.
¿Qué sigue?
- Para obtener una descripción general del Directorio de servicios, consulta Descripción general del Directorio de servicios.
- Para encontrar soluciones a problemas habituales que podrías tener cuando usas Service Directory, consulta Solución de problemas.