reconciling of multiple trino clusters results in clusterwide coordinator downtime
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- kubernetes, rust
- Ambito
- distributed-systems, infrastructure
Direzione di ricerca
Inizia tracciando il comportamento di riconciliazione dell’operatore quando più risorse TrinoCluster o catalog match labels cambiano contemporaneamente, quindi esamina il comportamento di eliminazione del coordinator correlato al PodDisruptionBudget fornito. Riproduci modifiche simultanee e determina se il completamento richiede una riconciliazione serializzata, una gestione corretta delle disruption o entrambe; il lavoro è completato quando viene evitato il downtime del coordinator durante gli aggiornamenti simultanei.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
we're dealing with the issue of concurrent reconcilations when trinocluster resources change. this issue occurs e.g. when a catalog is applied to the cluster matching more than one catalog-matchlabel or when all trino cluster resources are changed at the same time because they are configured in custom helm wrappers.
since we use argo for continous deployments we are not able to change clusters / upsert catalogs subsequently in a manual way.
we did not make progress with trino-lb (https://github.com/stackabletech/trino-operator/issues/490) yet but I'm sure even with trino-lb running this would cause outages everytime the trinocluster resources are (re-)configured or catalogs are upserted. unfortunately running trino in a high available way is mission critical for our production scenario
possible solution: subsequent reconcilation
introducing a flag for the operator (maybe other product operators might be affecated as well) which enables subsequent reconcilations in a queue style instead of parallelized reconcilations which lead to all clusters going offline at the same time.
disadvantage might be that a malicious cluster kills the whole reconcilation process until the resource is fixed manually.
possible solution: pdb
we already defined following pdb to make sure one coordinator per kubernetes cluster is available. unfortunately the pdb is ignored and all coordinators get killed concurrently. @maltesander @sbernauer already told about delete operations instead of evictions which would take care of the pdb. feel free to edit / add some further details
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: trino-highavailiability-coordinator
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/component: coordinator
Seems like somebody is feeling similar pain with elasticsearch https://github.com/kubernetes/kubernetes/issues/91808#issuecomment-1244596481
- Lingua principale
- Rust
- Stelle
- 63
- Fork
- 13
- Merge medio
- 1g 20h
- PR unite (30g)
- 12
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stackabletech/trino-operator
-
customer-request
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
stackabletech/trino-operator#499 ·
-
type/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
stackabletech/trino-operator#936 · 3 commenti ·
-
release-note
stackabletech/trino-operator#854 · 3 commenti · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
stackabletech/trino-operator#849 ·
-
customer-request type/feature-improvement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
stackabletech/trino-operator#813 · 1 commento ·
Tutte le issue di stackabletech/trino-operator
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
state:needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
zed-industries/zed#64680 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
RustPython/RustPython#8802 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheLarkInn/aipm#2390 ·