Install
Requirements
Before installing etcd, see the following pages:
Install pre-built binaries
The easiest way to install etcd is from pre-built binaries:
Download the compressed archive file for your platform from Releases, choosing release v3.5.21 or later.
Unpack the archive file. This results in a directory containing the binaries.
Add the executable binaries to your path. For example, rename and/or move the binaries to a directory in your path (like
/usr/local/bin), or add the directory created by the previous step to your path.From a shell, test that
etcdis in your path:$ etcd --version etcd Version: 3.5.21 ...
Build from source
If you have Go version 1.2+, you can build etcd from source by following these steps:
Download the etcd repo as a zip file and unzip it, or clone the repo using the following command.
$ git clone -b v3.5.21 https://github.com/etcd-io/etcd.gitTo build from
main@HEAD, omit the-b v3.5.21flag.Change directory:
$ cd etcdRun the build script:
$ ./build.shThe binaries are under the
bindirectory.Add the full path to the
bindirectory to your path, for example:$ export PATH="$PATH:`pwd`/bin"Test that
etcdis in your path:$ etcd --version
Installation via OS packages
Disclaimer: etcd installations through OS package managers can deliver outdated versions since they are not being automatically maintained nor officially supported by etcd project. Therefore use OS packages with caution.
There are various ways of installing etcd on different operating systems and these are just some examples how it can be done.
MacOS (Homebrew)
- Update homebrew:
$ brew update
- Install etcd:
$ brew install etcd
- Verify install
$ etcd --version
Linux
Although installing etcd through many major Linux distributions’ official repositories and package managers is possible, the published versions can be significantly outdated. So, installing this way is strongly discouraged.
The recommended way to install etcd on Linux is either through pre-built binaries or by using Homebrew.
Homebrew on Linux
Homebrew can run on Linux, and can provide recent software versions.
Prerequisites
Update Homebrew:
$ brew update
Procedure
Install using
brew:$ brew install etcd
Result
Verify installation by getting the version:
$ etcd --version etcd Version: 3.5.21 ...
Docker
etcd uses gcr.io/etcd-development/etcd as a
primary container registry, and quay.io/coreos/etcd as
secondary.
To run etcd using Docker:
ETCD_VER=v3.5.21
rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \
docker run \
-p 2379:2379 \
-p 2380:2380 \
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
--name etcd-gcr-${ETCD_VER} \
gcr.io/etcd-development/etcd:${ETCD_VER} \
/usr/local/bin/etcd \
--name s1 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster s1=http://0.0.0.0:2380 \
--initial-cluster-token tkn \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcd --version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdutl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl endpoint health
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl put foo bar
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl get foo
Installation as part of Kubernetes installation
Installation check
For a slightly more involved sanity check of your installation, see Quickstart.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.