Ответ
Kubernetes использует API Priority and Fairness (APF) для rate limiting, заменяя старый механизм --max-requests-inflight. APF классифицирует запросы по приоритетам и fairness queues, обеспечивая баланс между важными и фоновыми запросами.
Основные компоненты:
- Flow Schemas – определяют классификацию запросов (например, по пользователю или типу операции)
- Priority Levels – устанавливают лимиты и очереди для разных категорий запросов
Пример FlowSchema:
apiVersion: flowcontrol.apiserver.k8s.io/v1beta2
kind: FlowSchema
metadata:
name: healthz
spec:
priorityLevelConfiguration:
name: exempt
rules:
- resourceRules:
- apiGroups: [""]
resources: ["healthz"]
verbs: ["get"]
subjects:
- kind: User
user: "*"
При превышении лимитов API сервер возвращает HTTP 429 (Too Many Requests). Настройки по умолчанию обычно достаточны, но можно тонко настроить под нагрузку конкретного кластера.