<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on etcd</title><link>https://etcd.io/blog/</link><description>Recent content in Blog on etcd</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://etcd.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Avoiding Zombie Cluster Members When Upgrading to etcd v3.6</title><link>https://etcd.io/blog/2025/zombie_members_upgrade/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2025/zombie_members_upgrade/</guid><description>&lt;p&gt;&lt;strong&gt;Summary: SIG-etcd has patched another potential issue blocking upgrades from v3.5 to v3.6. If you are upgrading, make sure to update to &lt;a href="https://github.com/etcd-io/etcd/releases/tag/v3.5.26" target="_blank" rel="noopener"&gt;v3.5.26&lt;/a&gt; or later first.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="issue-summary"&gt;Issue Summary&lt;/h2&gt;
&lt;p&gt;Recently, the etcd community addressed an issue that may appear when users &lt;a href="https://etcd.io/docs/v3.6/upgrades/upgrade_3_6/" target="_blank" rel="noopener"&gt;upgrade from v3.5 to v3.6&lt;/a&gt;. This bug can cause the cluster to report &amp;ldquo;zombie members&amp;rdquo;, which are etcd nodes that were removed from the database cluster some time ago, and are re-appearing and joining database consensus. The etcd cluster is then inoperable until these zombie members are removed.&lt;/p&gt;</description></item><item><title>Follow Up - Preventing Upgrade Failures from etcd v3.5 to v3.6</title><link>https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue_followup/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue_followup/</guid><description>&lt;p&gt;We have identified and fixed an additional scenario that may cause upgrade failures when
moving from etcd v3.5 to v3.6. This post contains details, the fix, and additional workarounds.
Please refer to issue &lt;a href="https://github.com/etcd-io/etcd/issues/20793" target="_blank" rel="noopener"&gt;20793&lt;/a&gt; to get detailed technical information.&lt;/p&gt;
&lt;h2 id="issue"&gt;Issue&lt;/h2&gt;
&lt;p&gt;In a previous post — &lt;a href="https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/" target="_blank" rel="noopener"&gt;How to Prevent a Common Failure when Upgrading etcd v3.5 to v3.6&lt;/a&gt; — we
described an upgrade issue affecting etcd versions in v3.5.1-v3.5.19. That issue was addressed in
v3.5.20. However, a follow-up investigation revealed that the original fix did not cover all scenarios.&lt;/p&gt;</description></item><item><title>Autonomous Testing of etcd's Robustness</title><link>https://etcd.io/blog/2025/autonomus_testing_with_antithesis/</link><pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2025/autonomus_testing_with_antithesis/</guid><description>&lt;p&gt;&lt;em&gt;This is a post from the &lt;a href="https://www.cncf.io/blog/2025/09/25/autonomous-testing-of-etcds-robustness/" target="_blank" rel="noopener"&gt;CNCF blog&lt;/a&gt; which we are sharing with our community as well.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As a critical component of many production systems, including Kubernetes, the etcd project&amp;rsquo;s first priority is reliability.
Ensuring consistency and data safety requires our project contributors to continuously improve testing methodologies.
In this article, we will describe how we used advanced simulation testing to uncover subtle bugs,
validate the robustness of our releases, and increase our confidence in etcd&amp;rsquo;s stability.
We&amp;rsquo;ll share our key findings and how they have improved etcd.&lt;/p&gt;</description></item><item><title>Announcing etcd v3.6.0</title><link>https://etcd.io/blog/2025/announcing-etcd-3.6/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2025/announcing-etcd-3.6/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#security"&gt;Security&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#features"&gt;Features&lt;/a&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#migration-to-v3store"&gt;Migration to v3store&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#downgrade"&gt;Downgrade&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#feature-gates"&gt;Feature Gates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#livezreadyz-checks"&gt;Livez/readyz checks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#v3discovery"&gt;v3discovery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#performance"&gt;Performance&lt;/a&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#memory"&gt;Memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#throughput"&gt;Throughput&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#breaking-changes"&gt;Breaking changes&lt;/a&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#old-binaries-are-incompatible-with-new-schema-versions"&gt;Old Binaries Are Incompatible with New Schema Versions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#peer-endpoints-no-longer-serve-client-requests"&gt;Peer Endpoints No Longer Serve Client Requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#clear-boundary-between-etcdctl-and-etcdutl"&gt;Clear boundary between etcdctl and etcdutl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#testing"&gt;Testing&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#critical-bug-fixes"&gt;Critical bug fixes&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#upgrade-issue"&gt;Upgrade issue&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#platforms"&gt;Platforms&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#dependencies"&gt;Dependencies&lt;/a&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#dependency-bumping-guide"&gt;Dependency Bumping Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#core-dependency-updates"&gt;Core Dependency Updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#grpc-gatewayv2"&gt;grpc-gateway@v2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#grpc-ecosystemgo-grpc-middlewareprovidersprometheus"&gt;grpc-ecosystem/go-grpc-middleware/providers/prometheus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#community"&gt;Community&lt;/a&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#etcd-becomes-a-kubernetes-sig"&gt;etcd Becomes a Kubernetes SIG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#new-contributors-maintainers-and-reviewers"&gt;New Contributors, Maintainers, and Reviewers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#new-release-team"&gt;New Release Team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#introducing-the-etcd-operator-working-group"&gt;Introducing the etcd Operator Working Group&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#extended-support-for-v34"&gt;Extended Support for v3.4&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="#future-development"&gt;Future Development&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Today, we are releasing &lt;a href="https://github.com/etcd-io/etcd/releases/tag/v3.6.0" target="_blank" rel="noopener"&gt;etcd v3.6.0&lt;/a&gt;, the first minor release since etcd v3.5.0 on June 15, 2021. This release
introduces several new features, makes significant progress on long-standing efforts like downgrade support and
migration to v3store, and addresses numerous critical &amp;amp; major issues. It also includes major optimizations in
memory usage, improving efficiency and performance.&lt;/p&gt;</description></item><item><title>How to Prevent a Common Failure when Upgrading etcd v3.5 to v3.6</title><link>https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/</link><pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue/</guid><description>&lt;div class="alert alert-primary" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Update (October 21, 2025)&lt;/div&gt;
&lt;p&gt;We have identified and fixed two additional upgrade issues. Please see our
new blog posts
&lt;a href="https://etcd.io/blog/2025/upgrade_from_3.5_to_3.6_issue_followup"&gt;Follow Up - Preventing Upgrade Failures from etcd v3.5 to v3.6&lt;/a&gt; and &lt;a href="https://etcd.io/blog/2025/zombie_members_upgrade"&gt;Avoiding Zombie Cluster Members When Upgrading&lt;/a&gt;
for details.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;There is a common issue &lt;a href="https://github.com/etcd-io/etcd/issues/19557" target="_blank" rel="noopener"&gt;19557&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id="tl-dr"&gt;TL; DR&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Engage with the etcd project at KubeCon NA 2023</title><link>https://etcd.io/blog/2023/engage_with_etcd_at_kccncna2023/</link><pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2023/engage_with_etcd_at_kccncna2023/</guid><description>&lt;p&gt;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&amp;rsquo;s presence at Kubecon underscores its importance in ensuring all our Kubernetes clusters continue to have robust and reliable distributed persistent state.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a detailed overview of what you can expect from the Etcd Project&amp;rsquo;s presence at KubeCon NA 2023:&lt;/p&gt;</description></item><item><title>Introducing sig-etcd</title><link>https://etcd.io/blog/2023/introducing-sig-etcd/</link><pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2023/introducing-sig-etcd/</guid><description>&lt;p&gt;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, &lt;a href="https://github.com/kubernetes/community/blob/master/sig-wg-lifecycle.md" target="_blank" rel="noopener"&gt;new SIGs can be created&lt;/a&gt;, and that was precisely what happened recently.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/kubernetes/community/blob/master/sig-etcd/README.md" target="_blank" rel="noopener"&gt;SIG etcd&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id="the-critical-role-of-etcd"&gt;The critical role of etcd&lt;/h2&gt;
&lt;p&gt;If we look inside the control plane of a Kubernetes cluster, we will find &lt;a href="https://kubernetes.io/docs/concepts/overview/components/#etcd" target="_blank" rel="noopener"&gt;etcd&lt;/a&gt;, a consistent and highly-available key value store used as Kubernetes&amp;rsquo; backing store for all cluster data -- this description alone highlights the critical role that etcd plays, and the importance of it within the Kubernetes ecosystem.&lt;/p&gt;</description></item><item><title>How to debug large db size issue?</title><link>https://etcd.io/blog/2023/how_to_debug_large_db_size_issue/</link><pubDate>Wed, 04 Jan 2023 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2023/how_to_debug_large_db_size_issue/</guid><description>&lt;h1 id="background"&gt;Background&lt;/h1&gt;
&lt;p&gt;Users can configure the quota of the backend db size using flag &lt;code&gt;--quota-backend-bytes&lt;/code&gt;. It&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;2GB is usually sufficient for most use cases. If you run out of the db quota, you will see error message &lt;code&gt;etcdserver: mvcc: database space exceeded&lt;/code&gt;
when trying to write more data, and see alarm &amp;ldquo;NOSPACE&amp;rdquo; (see example below) when checking the endpoint status or health state. It would be better to figure out whether it&amp;rsquo;s expected. It&amp;rsquo;s exactly the reason why I provide this guide.&lt;/p&gt;</description></item><item><title>etcd Integrates Continuous Fuzzing</title><link>https://etcd.io/blog/2022/etcd-integrates-continuous-fuzzing/</link><pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2022/etcd-integrates-continuous-fuzzing/</guid><description>&lt;p&gt;In the last few months, the team at &lt;a href="https://adalogics.com" target="_blank" rel="noopener"&gt;Ada Logics&lt;/a&gt; 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 value for etcd both short term and long term. All fuzzers were implemented by way of go-fuzz and when running in OSS-Fuzz instrumented by way of libFuzzer, and as such, etcd uses state-of-the-art open source fuzzing capabilities.
The full report of the engagement can be found &lt;a href="https://github.com/etcd-io/etcd/blob/main/security/FUZZING_AUDIT_2022.PDF" target="_blank" rel="noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Announcing etcd 3.5</title><link>https://etcd.io/blog/2021/announcing-etcd-3.5/</link><pubDate>Tue, 15 Jun 2021 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2021/announcing-etcd-3.5/</guid><description>&lt;p&gt;When we &lt;a href="https://kubernetes.io/blog/2019/08/30/announcing-etcd-3-4/" target="_blank" rel="noopener"&gt;launched etcd 3.4 back in August 2019&lt;/a&gt;, 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.&lt;/p&gt;
&lt;p&gt;Today, we are releasing &lt;a href="https://github.com/etcd-io/etcd/releases/tag/v3.5.0" target="_blank" rel="noopener"&gt;etcd 3.5&lt;/a&gt;. The past two years
allowed for extensive iterations in fixing numerous bugs, identifying
optimization opportunities at scale, and evolving its surrounding ecosystem.
The etcd project also became a
&lt;a href="https://www.cncf.io/announcements/2020/11/24/cloud-native-computing-foundation-announces-etcd-graduation/" target="_blank" rel="noopener"&gt;CNCF graduated project&lt;/a&gt;
during this time frame. This release is the result of continuous evolution and
grungy, thankless tasks done by the etcd community.&lt;/p&gt;</description></item><item><title>Latest Jepsen Results against etcd 3.4.3</title><link>https://etcd.io/blog/2020/jepsen-343-results/</link><pubDate>Thu, 30 Jan 2020 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2020/jepsen-343-results/</guid><description>&lt;p&gt;Jepsen tested and analyzed etcd 3.4.3, and had both good results and useful feedback to share with us.&lt;/p&gt;
&lt;p&gt;A key part of etcd&amp;rsquo;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&amp;rsquo;s focus on reliability and correctness.&lt;/p&gt;
&lt;p&gt;Over the years, the etcd team has put tremendous effort on building &lt;a href="https://web.archive.org/web/20200811103145/https://coreos.com/blog/testing-distributed-systems-in-go.html" target="_blank" rel="noopener"&gt;testing&lt;/a&gt; and &lt;a href="https://web.archive.org/web/20200420035739/https://coreos.com/blog/new-functional-testing-in-etcd.html" target="_blank" rel="noopener"&gt;chaos engineering frameworks&lt;/a&gt;. We feel that we&amp;rsquo;ve improved our consistency, and have asked Jepsen for validation.&lt;/p&gt;</description></item><item><title>Container Linux with systemd</title><link>https://etcd.io/blog/2017/etcd-container-linux-with-systemd/</link><pubDate>Tue, 23 May 2017 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2017/etcd-container-linux-with-systemd/</guid><description>&lt;hr&gt;
&lt;p&gt;&lt;em&gt;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 &lt;a href="https://github.com/etcd-io/etcd/commits/8b290c680a5d4b4067c4d91b33f70c5506f654f0/Documentation/platforms/container-linux-systemd.md" target="_blank" rel="noopener"&gt;&lt;strong&gt;Gyuho Lee&lt;/strong&gt;&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The following blog post shows how to run etcd with &lt;a href="https://github.com/systemd/systemd" target="_blank" rel="noopener"&gt;systemd&lt;/a&gt; under &lt;a href="https://coreos.com/os/docs/latest" target="_blank" rel="noopener"&gt;Container Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="provisioning-an-etcd-cluster"&gt;Provisioning an etcd cluster&lt;/h2&gt;
&lt;p&gt;Cluster bootstrapping in Container Linux is simplest with &lt;a href="https://github.com/coreos/docs/blob/master/ignition/what-is-ignition.md" target="_blank" rel="noopener"&gt;Ignition&lt;/a&gt;; &lt;code&gt;coreos-metadata.service&lt;/code&gt; dynamically fetches the machine&amp;rsquo;s IP for discovery. Note that etcd&amp;rsquo;s discovery service protocol is only meant for bootstrapping, and cannot be used with runtime reconfiguration or cluster monitoring.&lt;/p&gt;</description></item><item><title>Deployment of etcd on AWS EC2</title><link>https://etcd.io/blog/2017/etcd-deployments-on-aws/</link><pubDate>Mon, 10 Apr 2017 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2017/etcd-deployments-on-aws/</guid><description>&lt;hr&gt;
&lt;p&gt;&lt;em&gt;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 &lt;a href="https://github.com/etcd-io/etcd/commits/6c08437ec330f84f78a59f7772884c7ef5374247/Documentation/platforms/aws.md" target="_blank" rel="noopener"&gt;&lt;strong&gt;Caleb Miles&lt;/strong&gt; and others&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;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 Cloud (EC2).&lt;/p&gt;</description></item><item><title>FreeBSD</title><link>https://etcd.io/blog/2014/etcd-freebsd/</link><pubDate>Thu, 23 Jan 2014 00:00:00 +0000</pubDate><guid>https://etcd.io/blog/2014/etcd-freebsd/</guid><description>&lt;hr&gt;
&lt;p&gt;&lt;em&gt;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 &lt;a href="https://github.com/etcd-io/etcd/commits/6c08437ec330f84f78a59f7772884c7ef5374247/Documentation/platforms/freebsd.md" target="_blank" rel="noopener"&gt;&lt;strong&gt;Bartłomiej Rutkowski&lt;/strong&gt; and others&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Starting with version 0.1.2 both etcd and etcdctl have been ported to FreeBSD and can be installed either via packages or ports system. Their versions have been recently updated to 0.2.0 so now etcd and etcdctl can be enjoyed on FreeBSD 10.0 (RC4 as of now) and 9.x, where they have been tested. They might also work when installed from ports on earlier versions of FreeBSD, but it is untested; caveat emptor.&lt;/p&gt;</description></item></channel></rss>