• Kubernetes Submit Queue's avatar
    Merge pull request #59830 from khenidak/az-ratelimit · 271c267f
    Kubernetes Submit Queue authored
    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
    271c267f
Name
Last commit
Last update
..
providers Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
README.md Loading commit data...
cloud.go Loading commit data...
doc.go Loading commit data...
plugins.go Loading commit data...