Sign inSign up

ggirou/coreos-etcd

By ggirou

•Updated over 8 years ago

Distributed reliable key-value store for the most critical data of a distributed system

Image
0

103

ggirou/coreos-etcd repository overview

⁠etcd

Go Report Card Build Status Build Status Docker Repository on Quay.io

Note: The master branch may be in an unstable or even broken state during development. Please use releases⁠ instead of the master branch in order to get stable binaries.

the etcd v2 documentation⁠ has moved

etcd Logo

etcd is a distributed, consistent key-value store for shared configuration and service discovery, with a focus on being:

  • Simple: well-defined, user-facing API (gRPC)
  • Secure: automatic TLS with optional client cert authentication
  • Fast: benchmarked 10,000 writes/sec
  • Reliable: properly distributed using Raft

etcd is written in Go and uses the Raft⁠ consensus algorithm to manage a highly-available replicated log.

etcd is used in production by many companies⁠, and the development team stands behind it in critical deployment scenarios, where etcd is frequently teamed with applications such as Kubernetes⁠, fleet⁠, locksmith⁠, vulcand⁠, Doorman⁠, and many others. Reliability is further ensured by rigorous testing⁠.

See etcdctl⁠ for a simple command line client.

⁠Getting started

⁠Getting etcd

The easiest way to get etcd is to use one of the pre-built release binaries which are available for OSX, Linux, Windows, rkt⁠, and Docker. Instructions for using these binaries are on the GitHub releases page⁠.

For those wanting to try the very latest version, you can build the latest version of etcd⁠ from the master branch. You will first need Go⁠ installed on your machine (version 1.7+ is required). All development occurs on master, including new features and bug fixes. Bug fixes are first targeted at master and subsequently ported to release branches, as described in the branch management⁠ guide.

⁠Running etcd

First start a single-member cluster of etcd:

./bin/etcd

This will bring up etcd listening on port 2379 for client communication and on port 2380 for server-to-server communication.

Next, let's set a single key, and then retrieve it:

ETCDCTL_API=3 etcdctl put mykey "this is awesome"
ETCDCTL_API=3 etcdctl get mykey

That's it! etcd is now running and serving client requests. For more

⁠etcd TCP ports

The official etcd ports⁠ are 2379 for client requests, and 2380 for peer communication.

⁠Running a local etcd cluster

First install goreman⁠, which manages Procfile-based applications.

Our Procfile script⁠ will set up a local example cluster. Start it with:

goreman start

This will bring up 3 etcd members infra1, infra2 and infra3 and etcd proxy proxy, which runs locally and composes a cluster.

Every cluster member and proxy accepts key value reads and key value writes.

⁠Running etcd on Kubernetes

If you want to run etcd cluster on Kubernetes, try etcd operator⁠.

⁠Next steps

Now it's time to dig into the full etcd API and other guides.

⁠Contact

⁠Contributing

See CONTRIBUTING⁠ for details on submitting patches and the contribution workflow.

⁠Reporting bugs

See reporting bugs⁠ for details about reporting any issue you may encounter.

⁠License

etcd is under the Apache 2.0 license. See the LICENSE⁠ file for details.

Tag summary

Content type

Image

Digest

Size

11.1 MB

Last updated

over 8 years ago

docker pull ggirou/coreos-etcd:v3.1.10