reconciling of multiple trino clusters results in clusterwide coordinator downtime
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- kubernetes, rust
調査の方向性
複数の TrinoCluster リソース、または catalog match labels が同時に変更された場合の operator の reconciliation 動作を追跡することから始め、次に、提供された PodDisruptionBudget に関連する coordinator の削除動作を調査します。同時変更を再現し、完了に serialized reconciliation、disruption 処理の修正、またはその両方が必要かどうかを判断します。完了条件は、同時更新中に coordinator のダウンタイムが発生しないことです。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Rust
- スター
- 63
- フォーク
- 13
- 平均マージ
- 1日 20時間
- マージ済み PR(30日)
- 12
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
stackabletech/trino-operator のほかの issue
-
customer-request
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
stackabletech/trino-operator#499 ·
-
type/bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
stackabletech/trino-operator#936 · コメント 3 件 ·
-
release-note
stackabletech/trino-operator#854 · コメント 3 件 · 担当者 1 名 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
stackabletech/trino-operator#849 ·
-
customer-request type/feature-improvement
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
stackabletech/trino-operator#813 · コメント 1 件 ·
stackabletech/trino-operator の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
TheLarkInn/aipm#2413 ·
-
documentation
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
todo:ticket
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
taikoxyz/taiko-mono#22168 · コメント 1 件 ·