| Please check out [CHANGELOG](https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-${RELEASE_VERSION_MAJOR_MINOR}.md) for a full list of changes. And make sure to read [upgrade guide](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/upgrades/upgrade_${RELEASE_VERSION_MAJOR}_${RELEASE_VERSION_MINOR}/) before upgrading etcd (there may be breaking changes). |
| |
| For installation guides, please check out [play.etcd.io](http://play.etcd.io) and [operating etcd](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/op-guide/). Latest support status for common architectures and operating systems can be found at [supported platforms](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/op-guide/supported-platform/). |
| |
| ###### Linux |
| |
| ```sh |
| ETCD_VER=${RELEASE_VERSION} |
| |
| # choose either URL |
| GOOGLE_URL=https://storage.googleapis.com/etcd |
| GITHUB_URL=https://github.com/etcd-io/etcd/releases/download |
| DOWNLOAD_URL=${GOOGLE_URL} |
| |
| rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz |
| rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test |
| |
| curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz |
| tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 --no-same-owner |
| rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz |
| |
| /tmp/etcd-download-test/etcd --version |
| /tmp/etcd-download-test/etcdctl version |
| /tmp/etcd-download-test/etcdutl version |
| |
| # start a local etcd server |
| /tmp/etcd-download-test/etcd |
| |
| # write,read to etcd |
| /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar |
| /tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo |
| ``` |
| |
| ###### macOS (Darwin) |
| |
| ```sh |
| ETCD_VER=${RELEASE_VERSION} |
| |
| # choose either URL |
| GOOGLE_URL=https://storage.googleapis.com/etcd |
| GITHUB_URL=https://github.com/etcd-io/etcd/releases/download |
| DOWNLOAD_URL=${GOOGLE_URL} |
| |
| rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip |
| rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test |
| |
| curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip |
| unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip |
| mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64 |
| |
| /tmp/etcd-download-test/etcd --version |
| /tmp/etcd-download-test/etcdctl version |
| /tmp/etcd-download-test/etcdutl version |
| ``` |
| |
| ###### Docker |
| |
| etcd uses [`gcr.io/etcd-development/etcd`](https://gcr.io/etcd-development/etcd) as a primary container registry, and [`quay.io/coreos/etcd`](https://quay.io/coreos/etcd) as secondary. |
| |
| ```sh |
| ETCD_VER=${RELEASE_VERSION} |
| |
| 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 |
| ``` |