These docs cover everything from setting up and running an etcd cluster to using etcd in applications.| etcd
etcd, general What is etcd? etcd is a consistent distributed key-value store. Mainly used as a separate coordination service, in distributed systems. And designed to hold small amounts of data that can fit entirely in memory. How do you pronounce etcd? etcd is pronounced /ˈɛtsiːdiː/, and means “distributed etc directory.” Do clients have to send requests to the etcd leader? Raft is leader-based; the leader handles all client requests which need cluster consensus. However, the client d...| v3.6.0-alpha docs on etcd
Note that third-party libraries and tools (not hosted on https://github.com/etcd-io) mentioned below are not tested or maintained by the etcd team. Before using them, users are recommended to read and investigate them. Tools etcdctl - A command line client for etcd etcd-dump - Command line utility for dumping/restoring etcd. etcd-fs - FUSE filesystem for etcd etcddir - Realtime sync etcd and local directory. Work with windows and linux. etcd-browser - A web-based key/value editor for etcd usi...| v3.6.0-alpha docs on etcd
etcd uses Prometheus for metrics reporting. The metrics can be used for real-time monitoring and debugging. etcd does not persist its metrics; if a member restarts, the metrics will be reset. The simplest way to see the available metrics is to cURL the metrics endpoint /metrics. The format is described here. Follow the Prometheus getting started doc to spin up a Prometheus server to collect etcd metrics. The naming of metrics follows the suggested Prometheus best practices. A metric name has ...| v3.6.0-alpha docs on etcd
If any part of the etcd project has bugs or documentation mistakes, please let us know by opening an issue. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. To make the bug report accurate and easy to understand, please try to create bug reports that are: Specific. Include as much details as possible: which version, what environment, what configuration, etc. ...| v3.6.0-alpha docs on etcd
The default settings in etcd should work well for installations on a local network where the average network latency is low. However, when using etcd across multiple data centers or over networks with high latency, the heartbeat interval and election timeout settings may need tuning. The network isn’t the only source of latency. Each request and response may be impacted by slow disks on both the leader and follower. Each of these timeouts represents the total time from request to successful...| v3.6.0-alpha docs on etcd
etcd uses the zap library for logging application output categorized into levels. A log message’s level is determined according to these conventions: Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost Examples: A failure to allocate disk space for WAL Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning.| v3.6.0-alpha docs on etcd
etcd uses the zap library for logging application output categorized into levels. A log message’s level is determined according to these conventions: Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost Examples: A failure to allocate disk space for WAL Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning.| v3.5 docs on etcd
Table of Contents Introduction Security Features Migration to v3store Downgrade Feature Gates Livez/readyz checks v3discovery Performance Memory Throughput Breaking changes Old Binaries Are Incompatible with New Schema Versions Peer Endpoints No Longer Serve Client Requests Clear boundary between etcdctl and etcdutl Testing Critical bug fixes Upgrade issue Platforms Dependencies Dependency Bumping Guide Core Dependency Updates grpc-gateway@v2 grpc-ecosystem/go-grpc-middleware/providers/promet...| etcd
Follow these instructions to locally install, run, and test a single-member cluster of etcd: Install etcd from pre-built binaries or from source. For details, see Install. Important: Ensure that you perform the last step of the installation instructions to verify that etcd is in your path. Launch etcd: $ etcd {"level":"info","ts":"2021-09-17T09:19:32.783-0400","caller":"etcdmain/etcd.go:72","msg":... } ⋮ Note: The output produced by etcd are logs — info-level logs can be ignored. From ano...| etcd
Follow these instructions to locally install, run, and test a single-member cluster of etcd: Install etcd from pre-built binaries or from source. For details, see Install. Important: Ensure that you perform the last step of the installation instructions to verify that etcd is in your path. Launch etcd: $ etcd {"level":"info","ts":"2021-09-17T09:19:32.783-0400","caller":"etcdmain/etcd.go:72","msg":... } ⋮ Note: The output produced by etcd are logs — info-level logs can be ignored. From ano...| etcd
This series of examples shows the basic procedures for working with an etcd cluster. Auth auth,user,role for authentication: exportETCDCTL_API=3ENDPOINTS=localhost:2379 etcdctl --endpoints=${ENDPOINTS} role add root etcdctl --endpoints=${ENDPOINTS} role get root etcdctl --endpoints=${ENDPOINTS} user add root etcdctl --endpoints=${ENDPOINTS} user grant-role root root etcdctl --endpoints=${ENDPOINTS} user get root etcdctl --endpoints=${ENDPOINTS} role add role0 etcdctl --endpoints=${ENDPOINTS} ...| etcd
This series of examples shows the basic procedures for working with an etcd cluster. Auth auth,user,role for authentication: exportETCDCTL_API=3ENDPOINTS=localhost:2379 etcdctl --endpoints=${ENDPOINTS} role add root etcdctl --endpoints=${ENDPOINTS} role get root etcdctl --endpoints=${ENDPOINTS} user add root etcdctl --endpoints=${ENDPOINTS} user grant-role root root etcdctl --endpoints=${ENDPOINTS} user get root etcdctl --endpoints=${ENDPOINTS} role add role0 etcdctl --endpoints=${ENDPOINTS} ...| etcd
Requirements Before installing etcd, see the following pages: Supported platforms Hardware recommendations 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...| etcd
Requirements Before installing etcd, see the following pages: Supported platforms Hardware recommendations 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.6.0-alpha.0 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 pat...| etcd
etcd, general What is etcd? etcd is a consistent distributed key-value store. Mainly used as a separate coordination service, in distributed systems. And designed to hold small amounts of data that can fit entirely in memory. How do you pronounce etcd? etcd is pronounced /ˈɛtsiːdiː/, and means “distributed etc directory.” Do clients have to send requests to the etcd leader? Raft is leader-based; the leader handles all client requests which need cluster consensus. However, the client d...| etcd
Note that third-party libraries and tools (not hosted on https://github.com/etcd-io) mentioned below are not tested or maintained by the etcd team. Before using them, users are recommended to read and investigate them. Tools etcdctl - A command line client for etcd etcd-dump - Command line utility for dumping/restoring etcd. etcd-fs - FUSE filesystem for etcd etcddir - Realtime sync etcd and local directory. Work with windows and linux. etcd-browser - A web-based key/value editor for etcd usi...| etcd
etcd uses Prometheus for metrics reporting. The metrics can be used for real-time monitoring and debugging. etcd does not persist its metrics; if a member restarts, the metrics will be reset. The simplest way to see the available metrics is to cURL the metrics endpoint /metrics. The format is described here. Follow the Prometheus getting started doc to spin up a Prometheus server to collect etcd metrics. The naming of metrics follows the suggested Prometheus best practices. A metric name has ...| etcd
If any part of the etcd project has bugs or documentation mistakes, please let us know by opening an issue. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. To make the bug report accurate and easy to understand, please try to create bug reports that are: Specific. Include as much details as possible: which version, what environment, what configuration, etc. ...| etcd
The default settings in etcd should work well for installations on a local network where the average network latency is low. However, when using etcd across multiple data centers or over networks with high latency, the heartbeat interval and election timeout settings may need tuning. The network isn’t the only source of latency. Each request and response may be impacted by slow disks on both the leader and follower. Each of these timeouts represents the total time from request to successful...| etcd
Discover other etcd members in a cluster bootstrap phase| etcd
There is a common issue 19557 in the etcd v3.5 to v3.6 upgrade that may cause the upgrade process to fail. You can find detailed information and related discussions in the issue. TL; DR Users are required to first upgrade to etcd v3.5.20 (or a higher patch version) before upgrading to etcd v3.6.0. Failure to do so may result in an unsuccessful upgrade. What’s the symptom? When upgrading a multi-member etcd cluster from a version between v3.5.1 and v3.5.19 to v3.6.0, the upgrade may fail due...| etcd
KubeCon NA 2023 in Chicago is just around the corner! This year, the etcd project has a diverse range of talks, tutorials, and even interactive contribfest sessions for you to get involved in . As a critical foundational pillar of the Kubernetes ecosystem, etcd’s presence at Kubecon underscores its importance in ensuring all our Kubernetes clusters continue to have robust and reliable distributed persistent state. Here’s a detailed overview of what you can expect from the Etcd Project’s...| etcd
Special Interest Groups (SIGs) are a fundamental part of the Kubernetes project, with a substantial share of the community activity happening within them. When the need arises, new SIGs can be created, and that was precisely what happened recently. SIG etcd is the most recent addition to the list of Kubernetes SIGs. In this article we will get to know it a bit better, understand its origins, scope, and plans.| etcd
Background Users can configure the quota of the backend db size using flag --quota-backend-bytes. It’s the max number of bytes the etcd db file may consume, namely the ${etcd-data-dir}/member/snap/db file. Its default value is 2GB, and the suggested max value is 8GB. 2GB is usually sufficient for most use cases. If you run out of the db quota, you will see error message etcdserver: mvcc: database space exceeded when trying to write more data, and see alarm “NOSPACE” (see example below) ...| etcd
In the last few months, the team at Ada Logics has worked on integrating continuous fuzzing into the etcd project. This was an effort focused on improving the security posture of etcd and ensuring a continued good experience for etcds users. The fuzzing integration involved enrolling etcd in the OSS-Fuzz project and writing a set of fuzzers that would bring the test coverage of etcd up to a mature level. In total, 18 fuzzers were written, and eight bugs were found, demonstrating the work’s ...| etcd
When we launched etcd 3.4 back in August 2019, our focus was on storage backend improvements, non-voting member and pre-vote features. Since then, etcd has become more widely used for various mission critical clustering and database applications and as a result, its feature set has grown more broad and complex. Thus, improving its stability and reliability has been top priority in recent development. Today, we are releasing etcd 3.5. The past two years allowed for extensive iterations in fixi...| etcd
Jepsen tested and analyzed etcd 3.4.3, and had both good results and useful feedback to share with us. A key part of etcd’s design is strong consistency guarantees across the distributed key-value store. Kubernetes, Rook, OpenStack, and countless other critical software projects rely on etcd, in part, because of the etcd project’s focus on reliability and correctness. Over the years, the etcd team has put tremendous effort on building testing and chaos engineering frameworks.| etcd
etcd deployments with systemd under Container Linux| etcd
This is an adaptation of a page previously found in the Platforms section of the documentation which described etcd deployments on various platform services. The original page was authored by Caleb Miles and others. This post provides an introduction to design considerations when designing an etcd deployment on AWS EC2 and how AWS specific features may be utilized in that context. Also, this post assumes operational knowledge of Amazon Web Services (AWS), specifically Amazon Elastic Compute C...| etcd
etcd deployments using FreeBSD| etcd