En este documento se explica cómo observar la aplicación de las cuotas. El sistema de cuotas de Google Distributed Cloud (GDC) con air gap protege los servicios evitando picos de uso imprevistos que podrían sobrecargarlos. Para ayudarte a entender cómo se configuran y se aplican las cuotas de servicio, puedes usar el servicio Library Agent para observar los comportamientos de las cuotas, como la limitación de la frecuencia.
El servicio Library Agent expone dos APIs:
- GetShelf recupera los detalles de un estante específico y no tiene límite de frecuencia.
- ListShelves obtiene una lista de todas las estanterías y tiene un límite de dos solicitudes por minuto.
Esta página está dirigida a los desarrolladores del grupo de operadores de aplicaciones, que son responsables de monitorizar las cuotas y los patrones de uso de su proyecto. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Antes de empezar
Antes de interactuar con el servicio Library Agent, asegúrate de que tienes los permisos correctos y el endpoint del servicio:
Para obtener los permisos que necesitas para interactuar con el servicio Library Agent, pide al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Usuario de Library Agent en el espacio de nombres de tu proyecto. Por ejemplo, el administrador de gestión de identidades y accesos de proyectos puede vincular el rol
libraryagent-usera tu cuenta de usuario en el espacio de nombres de tu proyecto aplicando un recursoRoleBinding:kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: libraryagent-user-binding namespace: PROJECT_NAMESPACE subjects: - kind: User name: USER_EMAIL_ADDRESS apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: libraryagent-user apiGroup: rbac.authorization.k8s.io EOFHaz los cambios siguientes:
PROJECT_NAMESPACE: el espacio de nombres de tu proyecto, comoproject-123.USER_EMAIL_ADDRESS: la dirección de correo asociada a tu identidad de usuario.
Pide a un administrador de la plataforma que tenga acceso al clúster de administrador de la organización y que tenga el rol de monitor de DNS (
dns-monitor-mp) que obtenga el nombre de DNS del servicio LibraryAgent:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Si necesitas editar el registro DNS, el PA también debe tener el rol de depurador de DNS (
dns-debugger-mp).
Respetar los límites de cuota
Para interactuar con las APIs del agente de biblioteca y observar la limitación de frecuencia, sigue estos pasos:
Define las variables de entorno para el nombre DNS y tu token de autenticación:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Sustituye
LIBRARY_AGENT_DNS_NAMEpor el nombre de DNS que has obtenido antes.Llama a la API
GetShelfpara obtener un estante específico por su nombre. Este método no tiene límite de frecuencia:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Sustituye
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Recibes una respuesta
HTTP 200 OK.Llama a la API
ListShelvespara obtener una lista de todos los estantes de una ubicación que se refleje en el nombre de DNS. Este método tiene un límite de dos solicitudes por minuto:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSustituye
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Si no superas el límite de dos solicitudes por minuto, recibirás una respuesta
HTTP 200 OK.Para observar la aplicación de la cuota, llama a la API
ListShelvesrepetidamente hasta que superes el límite de frecuencia:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSustituye
PROJECT_NAMESPACEpor el espacio de nombres de tu proyecto.Si supera el límite, recibirá una
HTTP 429 Too Many Requestsrespuesta que indica que el sistema de cuotas ha limitado la frecuencia de la solicitud. El resultado debería ser similar al siguiente:* Request completely sent off < HTTP/2 429 < x-envoy-ratelimited: true < date: Thu, 24 Apr 2025 18:37:16 GMT < server: istio-envoy < x-envoy-upstream-service-time: 46 < * Connection #0 to host libraryagent.org-1.zone1.google.gdch.test left intactLa aplicación de los límites de frecuencia no siempre es precisa. Puede que se necesiten más de dos solicitudes en un minuto para activar el error 429.