Throttle requests when api-server tries to rate limit stackablectl

Offen
#370 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
kubernetes, rust
Bereich
api, cli

Rechercherichtung

Beginne beim Request-Pfad, der vom Befehl stackablectl stacklet list verwendet wird, und verfolge, wie Kubernetes-API-Fehler behandelt werden. Prüfe, ob kube-rs für HTTP-429-Antworten bereits Wiederholungs- oder Throttling-Verhalten bereitstellt, und reproduziere den Fehler nach Möglichkeit in einem EKS-Cluster. Als erledigt gilt die Aufgabe, wenn der Befehl die gemeldete Rate-Limit-Bedingung behandelt, ohne sofort fehlzuschlagen, und das gewählte Verhalten durch Tests oder eine Reproduktion verifiziert wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

When trying to run stacklet list an an AWS eks cluster recently (replicated cluster, k8s 1.32) - the api-server was apparently unhappy about the rate at which requests were sent to retrieve details for Stackable objects.

soenke-desktop:~$ stackablectl stacklet list
An unrecoverable error occured: failed to execute stacklet (sub)command

Caused by these errors (recent errors listed first):
 1: failed to list stacklets
 2: failed to fetch data from the Kubernetes API
 3: failed to fetch data from Kubernetes API
 4: ApiError: storage is (re)initializing: TooManyRequests (ErrorResponse { status: "Failure", message: "storage is (re)initializing", reason: "TooManyRequests", code: 429 })
 5: storage is (re)initializing: TooManyRequests

We should probably somehow honour 429 status codes and throttle requests in that case. Or maybe implement this upstream in kube-rs.

Vorherrschende Sprache
Rust
Sterne
10
Forks
5
Ø Merge
4 Std. 41 Min.
Gemergte PRs (30 T.)
4

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus stackabletech/stackablectl

Alle Issues in stackabletech/stackablectl

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.