Questo documento spiega come osservare l'applicazione delle quote. Il sistema di quote Google Distributed Cloud (GDC) con air gap protegge i servizi prevenendo picchi di utilizzo imprevisti che potrebbero sovraccaricarli. Per aiutarti a capire come vengono configurate e applicate le quote di servizio, puoi utilizzare il servizio Library Agent per osservare i comportamenti delle quote, ad esempio limitazione di frequenza.
Il servizio Library Agent espone due API:
- GetShelf: recupera i dettagli di una sezione specifica e non è soggetto a limiti di frequenza.
- ListShelves: recupera un elenco di tutti gli scaffali e ha un limite di frequenza di due richieste al minuto.
Questa pagina è dedicata agli sviluppatori del gruppo di operatori delle applicazioni, che sono responsabili del monitoraggio delle quote e dei pattern di utilizzo per il loro progetto. Per maggiori informazioni, consulta Segmenti di pubblico per la documentazione air-gap di GDC.
Prima di iniziare
Prima di interagire con il servizio Library Agent, assicurati di disporre delle autorizzazioni corrette e dell'endpoint del servizio:
Per ottenere le autorizzazioni necessarie per interagire con il servizio Library Agent, chiedi all'amministratore IAM del progetto di concederti il ruolo Utente LibraryAgent nello spazio dei nomi del progetto. Ad esempio, l'amministratore IAM del progetto può associare il ruolo
libraryagent-useral tuo account utente nello spazio dei nomi del progetto applicando una risorsaRoleBinding: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 EOFSostituisci quanto segue:
PROJECT_NAMESPACE: lo spazio dei nomi del progetto, ad esempioproject-123.USER_EMAIL_ADDRESS: l'indirizzo email associato alla tua identità utente.
Chiedi a un amministratore della piattaforma che ha accesso al cluster di amministrazione dell'organizzazione e che dispone del ruolo Monitor DNS (
dns-monitor-mp) di ottenere il nome DNS per il servizio agente della libreria:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'Se devi modificare la registrazione DNS, l'amministratore delegato deve disporre anche del ruolo Debugger DNS (
dns-debugger-mp).
Rispetta i limiti di quota
Per interagire con le API Library Agent e osservare limitazione di frequenza, segui questi passaggi:
Imposta le variabili di ambiente per il nome DNS e il token di autenticazione:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"Sostituisci
LIBRARY_AGENT_DNS_NAMEcon il nome DNS ottenuto in precedenza.Chiama l'API
GetShelfper recuperare uno scaffale specifico per nome. Questo metodo non ha limiti di frequenza:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1Sostituisci
PROJECT_NAMESPACEcon lo spazio dei nomi del progetto.Ricevi una risposta
HTTP 200 OK.Chiama l'API
ListShelvesper elencare tutti gli scaffali in una posizione indicata nel nome DNS. Questo metodo è limitato a due richieste al minuto:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSostituisci
PROJECT_NAMESPACEcon lo spazio dei nomi del progetto.Se rientri nel limite di due richieste al minuto, ricevi una risposta
HTTP 200 OK.Per osservare l'applicazione della quota, chiama ripetutamente l'API
ListShelvesfinché non superi il limite di frequenza:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelvesSostituisci
PROJECT_NAMESPACEcon lo spazio dei nomi del progetto.Quando superi il limite, ricevi una risposta
HTTP 429 Too Many Requests, che indica che la richiesta è stata limitata dal sistema di quote. L'output è simile al seguente:* 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 intactL'applicazione del limite di frequenza non è sempre precisa. Potrebbero essere necessarie più di due richieste in un minuto per attivare l'errore 429.