그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그

  2 minute read  

REUSE status CI Build status Go Report Card License: Apache-2.0 Release Go Reference Docs

etcd-druid is an etcd operator which makes it easy to configure, provision, reconcile, monitor and delete etcd clusters. It enables management of etcd clusters through declarative Kubernetes API model.

In every etcd cluster managed by etcd-druid, each etcd member is a two container Pod which consists of:

  • etcd-wrapper which manages the lifecycle (validation & initialization) of an etcd.
  • etcd-backup-restore sidecar which currently provides the following capabilities (the list is not comprehensive):
    • etcd DB validation.
    • Scheduled etcd DB defragmentation.
    • Backup - etcd DB snapshots are taken regularly and backed in an object store if one is configured.
    • Restoration - In case of a DB corruption for a single-member cluster it helps in restoring from latest set of snapshots (full & delta).
    • Member control operations.

etcd-druid additionally provides the following capabilities:

  • Facilitates declarative scale-out of etcd clusters.
  • Provides protection against accidental deletion/mutation of resources provisioned as part of an etcd cluster.
  • Offers an asynchronous and threshold based capability to process backed up snapshots to:
  • Allows seamless copy of backups between any two object store buckets.

Start using or developing etcd-druid locally

If you are looking to try out druid then you can use a Kind cluster based setup.

https://github.com/user-attachments/assets/cfe0d891-f709-4d7f-b975-4300c6de67e4

For detailed documentation, see our docs.

Contributions

If you wish to contribute then please see our contributor guidelines.

Feedback and Support

We always look forward to active community engagement. Please report bugs or suggestions on how we can enhance etcd-druid on GitHub Issues.

License

Release under Apache-2.0 license.


API Reference

Relevant for: Developers

01 Multi Node Etcd Clusters

Relevant for:

02 Snapshot Compaction

Relevant for:

03 Scaling Up An Etcd Cluster

Relevant for:

Add New Etcd Cluster Component

Relevant for: Developers

Changing Api

Relevant for: Developers

Configure Etcd Druid

Relevant for:

Contribution

Relevant for: Developers

Controllers

Relevant for: Developers

DEP Title

Relevant for:

Dependency Management

Relevant for: Developers

Etcd Cluster Components

Relevant for:

Etcd Cluster Resource Protection

Relevant for:

Etcd Druid Api

Relevant for: Developers

etcd Network Latency

Relevant for:

EtcdMember Custom Resource

Relevant for:

Feature Gates in Etcd-Druid

Relevant for:

Getting Started Locally

Relevant for:

Getting Started Locally

Relevant for: Developers

Local e2e Tests

Relevant for: Developers

Manage Azurite Emulator

Relevant for:

Manage S3 Emulator

Relevant for:

Managing Etcd Clusters

Relevant for: Users

Metrics

Relevant for:

operator out-of-band tasks

Relevant for:

Prepare Dev Environment

Relevant for: Developers

Production Setup Recommendations

Relevant for:

Raising A Pr

Relevant for: Developers

Recovering Etcd Clusters

Relevant for: Users

Securing Etcd Clusters

Relevant for: Users

Testing

Relevant for: Developers

Updating Documentation

Relevant for: Developers

Version Compatibility Matrix

Relevant for: