2.2 KiB
Kops and etcd
Kops currently manages etcd using a daemon that runs on the masters called protokube. protokube is responsible for:
- mapping volumes so that exactly one master runs each member of the etcd cluster, even when the masters are dynamic (in autoscaling groups).
- mapping DNS names so that etcd nodes can discover each other even as they move around.
We are following the approach recommended by the authors of etcd
protokube has additional responsibilities also, so we call this the protokube-integrated etcd support.
Generally, splitting up protokube is part of the general kops roadmap, where we aim to split out our integrated tooling into composable tooling that can be upgraded (or even used) separately.
Limitations
The current approach for managing etcd makes certain tasks hard:
- upgrades/downgrades between etcd versions
- resizing the cluster
To address these limitations, we plan to adopt the etcd-manager as it matures.
To make adoption easier, the etcd-manager has added a standalone backup tool, that can backup etcd into the expected structure, even if you are not running the etcd-manager. It should be possible to then use the etcd-manager from that backup.
Roadmap
kops 1.9
- Use the etcd-backup tool to allow users to opt-in to backups with the protokube-integrated etcd support, in the format that etcd-manager expects
Goal: Users can enable backups on a running cluster.
kops 1.10
- Make the etcd-backup tool enabled-by-default, so everyone should have backups.
- Allow users to opt-in to the full etcd-manager.
- Make etcd3 the default for new clusters, now that we have an upgrade path.
Goal: Users that want to move from etcd2 to etcd3 can enable backups on an existing cluster (running kops 1.9 or later), then enable the etcd-manager (with kops 1.10 or later).
kops 1.11
- Make the etcd-manager the default, deprecate the protokube-integrated approach
Goal: Users are fully able to manage etcd - moving between versions or resizing their clusters.
untargeted
- Remove the protokube-integrated etcd support (untargeted)