本文說明如何觀察配額強制執行情況。Google Distributed Cloud (GDC) 實體隔離方案配額系統可預防用量意外暴增,避免服務超載,進而保護服務。為協助您瞭解服務配額的設定和強制執行方式,您可以使用 Library Agent 服務觀察配額行為,例如速率限制。
Library Agent 服務會公開兩項 API:
- GetShelf:擷取特定書架的詳細資料,且沒有速率限制。
- ListShelves:擷取所有書架的清單,每分鐘最多可提出兩項要求。
本頁面適用於應用程式運算子群組中的開發人員,他們負責監控專案的配額和用量模式。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件。
事前準備
與 Library Agent 服務互動前,請確認您具備正確的權限和服務端點:
如要取得與 Library Agent 服務互動所需的權限,請要求專案 IAM 管理員在專案命名空間中授予您 LibraryAgent 使用者角色。舉例來說,專案 IAM 管理員可以套用
RoleBinding資源,在專案命名空間中將libraryagent-user角色繫結至您的使用者帳戶: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 EOF更改下列內容:
PROJECT_NAMESPACE:專案的命名空間,例如project-123。USER_EMAIL_ADDRESS:與使用者身分相關聯的電子郵件地址。
請要求有權存取機構管理員叢集,且具備 DNS 監控 (
dns-monitor-mp) 角色的平台管理員,取得 Library Agent 服務的 DNS 名稱:kubectl get dnsregistration.network.private.gdc.goog -n libraryagent-system libraryagent -o jsonpath='{.status.fqdn}'如要編輯 DNS 註冊,PA 也必須具備 DNS Debugger (
dns-debugger-mp) 角色。
遵守配額限制
如要與 Library Agent API 互動並觀察速率限制,請按照下列步驟操作:
為 DNS 名稱和驗證權杖設定環境變數:
export DNS_NAME=LIBRARY_AGENT_DNS_NAME export TOKEN="$($HOME/gdcloud auth print-identity-token --audiences=https://$DNS_NAME)"將
LIBRARY_AGENT_DNS_NAME換成您稍早取得的 DNS 名稱。呼叫
GetShelfAPI,依名稱擷取特定書架。這個方法沒有速率限制:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves/Shelf1將
PROJECT_NAMESPACE替換為您的專案命名空間。您會收到
HTTP 200 OK回覆。呼叫
ListShelvesAPI,列出 DNS 名稱中反映的位置的所有貨架。這個方法的速率限制為每分鐘兩項要求:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves將
PROJECT_NAMESPACE替換為您的專案命名空間。如果每分鐘的要求數未超過兩次,您會收到
HTTP 200 OK回覆。如要觀察配額強制執行情況,請重複呼叫
ListShelvesAPI,直到超過速率限制為止:curl -v -X GET \ -H "Authorization: Bearer ${TOKEN?}" \ --insecure \ https://$DNS_NAME/v1alpha1/projects/PROJECT_NAMESPACE/shelves將
PROJECT_NAMESPACE替換為您的專案命名空間。如果超過限制,您會收到
HTTP 429 Too Many Requests回應,表示配額系統已限制要求頻率。輸出結果會與下列內容相似:* 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 intact速率限制不一定會精確執行,可能需要在一分鐘內提出超過兩項要求,才會觸發 429 錯誤。