reconciling of multiple trino clusters results in clusterwide coordinator downtime
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- kubernetes, rust
- Lĩnh vực
- distributed-systems, infrastructure
Hướng nghiên cứu
Bắt đầu bằng cách theo dõi hành vi reconciliation của operator khi nhiều tài nguyên TrinoCluster hoặc catalog match labels thay đổi đồng thời, sau đó kiểm tra hành vi xóa coordinator liên quan đến PodDisruptionBudget được cung cấp. Tái hiện các thay đổi đồng thời và xác định xem việc hoàn tất có yêu cầu reconciliation được tuần tự hóa, xử lý disruption được sửa lại hay cả hai hay không; hoàn tất có nghĩa là tránh được thời gian coordinator ngừng hoạt động trong các lần cập nhật đồng thời.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Rust
- Star
- 63
- Fork
- 13
- Merge trung bình
- 1 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 12
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của stackabletech/trino-operator
-
customer-request
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
stackabletech/trino-operator#499 ·
-
type/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
stackabletech/trino-operator#936 · 3 bình luận ·
-
release-note
stackabletech/trino-operator#854 · 3 bình luận · 1 người được giao ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
stackabletech/trino-operator#849 ·
-
customer-request type/feature-improvement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
stackabletech/trino-operator#813 · 1 bình luận ·
Tất cả issue của stackabletech/trino-operator
Issue tương tự
-
Replayed reasoning items send "content": null, which the Responses API schema does not permit Đang mởbug CLI custom-model
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
rust-bitcoin/rust-bitcoin#6930 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
fulcrumgenomics/ferro-hgvs#2251 ·
-
Missing examples for `Allocator` Đang mởA-allocators A-docs C-enhancement T-libs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100