mirror of
https://github.com/outbackdingo/kubernetes.git
synced 2026-02-10 04:50:27 +00:00
Automatic merge from submit-queue (batch tested with PRs 59939, 59830). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Azure - ARM Read/Write rate limiting **What this PR does / why we need it**: Azure cloud provider currently runs with: 1. Single ARM rate limiter for both `read [put/post/delete]` and `write` operations, while ARM provide [different rates for read/write] (https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits). This causes write operation to stop even if there is available write request quotas. 2. Cloud provider uses rate limiter's `Accept()` instead of `TryAccept()` This causes control loop to wait for prolonged tike `in case of no request quota available` for **all** requests even for those does not require ARM interaction. A case for that the `Service` control loop will wait for a prolonged time trying to create `LoadBalancer` service even though it can fail and work on the next service which is `ClusterIP`. This PR moves cloud provider tp `TryAccept()` **Which issue(s) this PR fixes**: Fixes # https://github.com/kubernetes/kubernetes/issues/58770 **Special notes for your reviewer**: `n/a` **Release note**: ```release-note - Separate current ARM rate limiter into read/write - Improve control over how ARM rate limiter is used within Azure cloud provider ``` cc @jackfrancis (need your help carefully reviewing this one) @brendanburns @jdumars