skywalking icon indicating copy to clipboard operation
skywalking copied to clipboard

[Feature] [SWCK] Add BanyanDB CRD & Controller

Open SzyWilliam opened this issue 3 years ago • 2 comments

Search before asking

  • [X] I had searched in the issues and found no similar feature requirement.

Description

BanyanDB is an observability database designed for observability platform and APM system, like Apache SkyWalking. I plan to add BanyanDB CRD and corresponding Controller into SWCK. It can enable SkyWalking users to directly deploy and use BanyanDB on Kubernetes. This issue mainly includes

  1. Design and implement the CRD for BanyanDB
  2. Design and implement Controller logic to reconcile BanyanDB on Kubernetes.
  3. Tests, Validations and Documentations.

Use case

No response

Related issues

No response

Are you willing to submit a PR?

  • [X] Yes I am willing to submit a PR!

Code of Conduct

SzyWilliam avatar Jul 27 '22 14:07 SzyWilliam

@hanahmily Hi, I noticed that BanyanDB currently has a standalone structure. I wonder what's community's plan for BanyanDB to adopt a fault-tolerant, multi-replicas structure (using Raft or other algorithms). I'm facing two challenges when designing CRD & Controllers for BanyanDB in k8s, they are:

  1. If BanyanDB pod fails (network partition, worker node down), do we have to restart and wait for it to recover, or have other failovers like activating a slave backup?
  2. If users changes BanyanDB version and its docker image, can we rolling update BanyanDB while still providing normal service? Does BanyanDB support hot-update for its start-up configurations?

SzyWilliam avatar Jul 29 '22 05:07 SzyWilliam

what's community's plan for BanyanDB to adopt a fault-tolerant, multi-replicas structure (using Raft or other algorithms).

Relevant feats are under discussion.

  1. If BanyanDB pod fails (network partition, worker node down), do we have to restart and wait for it to recover, or have other failovers like activating a slave backup?

BanyanDB will know nodes' roles. The operator doesn't take care of recovery. Restarting the pod is acceptable.

  1. If users changes BanyanDB version and its docker image, can we rolling update BanyanDB while still providing normal service? Does BanyanDB support hot-update for its start-up configurations?

The rolling update is a complicated topic. We don't have any discussions in the community. The operator could leave it as is now and refine the CRD once it's on our radar.

hanahmily avatar Jul 29 '22 11:07 hanahmily