Search code examples
runtimecluster-computingetcd

Can I change any member or cluster runtime reconfiguration in etcd?


etcd documentation for runtime reconfiguration (v3.5) only lists:

  • peer/client URL updates
  • adding members
  • removing members

But what if I wish to change:

  • for members
    • --quota-backend-bytes
    • --snapshot-count
    • --heartbeat-interval
    • --election-interval
  • for cluster
    • --auto-compaction-retention

Or mine wished updates are only applicable to the newly created cluster?


Solution

  • The only way you interact (for CLI) with etcd during runtime is etcdctl. The etcdctl allows only:

    • work with etcd alarms
    • compat/defrag
    • KV operations
    • snapshot save/restore
    • leases/grants
    • member CRUD
    • role CRUD
    • user CRUD

    Each etcd member should have same --flag values when joining the cluster ./etcd ..., except --advertise-* addresses, --name and these --*-dir.

    All above said and taking into consideration your "wishes", on fly you can:

    1. Perform snapshot/compat/defrag using etcdctl

    That means, if you wish to change some --flags except the ones I've mentioned, you have to create brand new cluster with that desired configuration. All other changes (which, of course, you can try to apply) will lead to unsafe cluster