Giter Club home page Giter Club logo

etcdadm's Introduction

etcdadm

etcdadm is a command-line tool for operating an etcd cluster. It makes it easy to create a new cluster, add a member to, or remove a member from an existing cluster. Its user experience is inspired by kubeadm.

For major project goals, see the roadmap

Table of Contents

Getting Started

Building

  1. Clone the git repository.
  2. Build on the host:
    make etcdadm
    
  3. Build in a container, using docker:
    make container-build
    

Creating a new cluster

  1. Copy etcdadm to each machine that will become a member.
  2. Choose one machine and run
etcdadm init

Adding a member

  1. Copy the CA certificate and key from any machine in the cluster to the machine being added.
rsync -avR /etc/etcd/pki/ca.* <Member IP address>:/
  1. Choose a cluster endpoint (i.e. client URL of some member) and run
etcdadm join <endpoint>

Removing a member

On the machine being removed, run

etcdadm reset

Advanced Usage

Creating a new cluster from a snapshot

If you have an existing etcd snapshot, you can use it to create a new cluster:

etcdadm init --snapshot /path/to/etcd.snapshot

Caveats and Limitations

  1. Must run as root. (This is because etcdadm creates a systemd service)
  2. Does not support etcd v2.
  3. Currently tested on Container Linux, with plans for other platforms.

Design

The goal of etcdadm is to make it easy to operate an etcd cluster. It downloads a specific etcd release, installs the binary, configures a systemd service, generates certificates, calls the etcd API to add (or remove) a member, and verifies that the new member is healthy.

Etcdadm must be run on the machine that is being added or removed. As a consequence, if a member permanently fails, and the operator cannot invoke etcdadm reset on that machine, the operator must use the etcd API to delete the failed member from the list of members.

On its own, etcdadm does not automate cluster operation, but a cluster orchestrator can delegate all the above tasks to etcdadm.

Sequence Diagrams

See docs/diagrams for sequence diagrams of init, join, and reset.

Questions?

For more information reach out to etcdadm slack channel

etcdadm's People

Contributors

adammw avatar bittopaz avatar ching-kuo avatar chuckha avatar dlipovetsky avatar drekle avatar dzoeteman avatar eugeniy avatar g-gaston avatar granular-ryanbonham avatar hakman avatar jmzwcn avatar johngmyers avatar justinsb avatar k8s-ci-robot avatar kashifsaadat avatar kenji-cloudnatix avatar moshloop avatar neolit123 avatar pracucci avatar puneetguptanitj avatar pytimer avatar rdrgmnzs avatar rifelpet avatar rockmenjack avatar sarun87 avatar srikiz avatar vannrt avatar zetaab avatar zhijianli88 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.