All Projects → kubernetes-sigs → Etcdadm

kubernetes-sigs / Etcdadm

Licence: apache-2.0

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Etcdadm

laracom
laracom driven by go micro services
Stars: ✭ 37 (-91.36%)
Mutual labels:  etcd
Python Etcd3
Python client for the etcd API v3
Stars: ✭ 290 (-32.24%)
Mutual labels:  etcd
Gokv
Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more)
Stars: ✭ 314 (-26.64%)
Mutual labels:  etcd
Burry.sh
Cloud Native Infrastructure BackUp & RecoveRY
Stars: ✭ 260 (-39.25%)
Mutual labels:  etcd
Kubernetes Under The Hood
This tutorial is someone planning to install a Kubernetes cluster and wants to understand how everything fits together.
Stars: ✭ 279 (-34.81%)
Mutual labels:  etcd
Postgresql cluster
PostgreSQL High-Availability Cluster (based on "Patroni" and "DCS(etcd)"). Automating deployment with Ansible.
Stars: ✭ 294 (-31.31%)
Mutual labels:  etcd
samsahai
Dependencies verification system with Kubernetes Operator
Stars: ✭ 66 (-84.58%)
Mutual labels:  etcd
Hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
Stars: ✭ 4,206 (+882.71%)
Mutual labels:  etcd
Nestcloud
A NodeJS micro-service solution, writing by Typescript language and NestJS framework.
Stars: ✭ 290 (-32.24%)
Mutual labels:  etcd
Golb
🐙 Yet another load balancer
Stars: ✭ 315 (-26.4%)
Mutual labels:  etcd
Jupiter
Jupiter是斗鱼开源的面向服务治理的Golang微服务框架
Stars: ✭ 3,455 (+707.24%)
Mutual labels:  etcd
Kotlin Cn
【已下线】https://discuss.kotliner.cn 的第一个实验版本,尝试使用Kotlin编写构建的 Kotlin China 论坛,etcd+自研tpc协议RPC
Stars: ✭ 276 (-35.51%)
Mutual labels:  etcd
Waterdrop
💧Waterdrop is a high performance micro service framework. Waterdrop comes from (The Three Body Problem).
Stars: ✭ 305 (-28.74%)
Mutual labels:  etcd
resilient-transport-service
Resilient demo application - Transport Service
Stars: ✭ 37 (-91.36%)
Mutual labels:  etcd
Containerdns
a fast DNS for Kubernetes clusters
Stars: ✭ 321 (-25%)
Mutual labels:  etcd
pink
分布式任务调度平台
Stars: ✭ 61 (-85.75%)
Mutual labels:  etcd
Reshifter
Kubernetes cluster state management
Stars: ✭ 292 (-31.78%)
Mutual labels:  etcd
Patroni
A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
Stars: ✭ 4,434 (+935.98%)
Mutual labels:  etcd
Etcd3
🔖 Node.js client for etcd3
Stars: ✭ 336 (-21.5%)
Mutual labels:  etcd
Stolon
PostgreSQL cloud native High Availability and more.
Stars: ✭ 3,481 (+713.32%)
Mutual labels:  etcd

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].