CNCFは、多くのオープンソースプロジェクトや企業で使用されている分散型Key-Valueストアであるetcdプロジェクトの卒業を発表した。もともとCoreOSに書かれたetcdは、2018年にCNCFインキュベーション段階に受け入れられ、2020年11月に卒業した。
etcdは2013年にCoreOSで作成され、2014年にオープンソース化された。CoreOSは2015年にetcdの最初の安定バージョンを出荷した。RedHatは2018年にCoreOSを買収し、その年の後半にetcdをCNCFに提供し、インキュベーションプロジェクトとして受け入れられた。etcdは、品質メトリクス、Jepsenテスト、セキュリティ監査、ガバナンスプロトコル、およびCNCF行動規範の採用を含むCNCFの標準的な卒業プロセスを経た。
卒業デューデリジェンス要件などの一環として、課題とPRの管理、CI、テストカバレッジ、およびCIIベストプラクティスバッジに必要な品質指標を満たした。Jepsenは、今年初めにv3.4.3でetcdの整合性保証をテストしたが、いくつかの修正が提案され、結果は良好だった。同じバージョンに対して2020年7月に実行されたサードパーティのセキュリティ監査 (これも要件の一部) では、「etcdのコアコンポーネントに重大な問題」は見つからなかった。ただし、「1つの重要度の高い問題がetcdゲートウェイで見つかりました。チームはこれを修正して対処し、etcdがサポートするリリースにバックポートしました」 - プレスリリースに注記がある。
2013年に戻すと、etcdの作成者であるBrandon Philips氏、Alex Polvi氏、Xiang Li氏は、独自の分散型Key-Valueストアを作成する代わりに、Google ChubbyとApache Zookeeperを検討した。既存のプロジェクトはいずれもユースケースに十分ではなかったため、CoreOSの内部コンテナオーケストレーションフレームワークで最初に使用されたetcdを彼らは書いた。Polvi氏によると、etcdはChubby論文に基づいていた。他のオープンソースプロジェクトなどで徐々に採用された後、Kubernetesチームがそれを主要なキーバリューストアとして選択したとき、etcdのコミュニティはさらに拡大した。
etcdは、リーダの選出と、クライアント要求を処理するetcdノード (リーダ) の選択にRaftコンセンサスアルゴリズムを使用する。Raftの実装は、他の多くのツールで使用されている。一般的なクラスタ展開には、高可用性のために3〜5個のノードがあり、永続性のために先行書き込みログを使用する。トランスポート層は通信にgRPCを使用する。TLSを使用して通信を保護できる。
etcdを使用している現在のプロジェクトには、Kubernetes、Cloud Foundry、OpenStack、M3、Rookなどがある。etcdをプロダクション環境で使用している有名企業のリストには、Alibaba、Amazon、Baidu、Cisco、EMC、Google、Huawei、IBM、NTT、Red Hat、Uber、Verizon、Yandexが含まれる。同様のツールとの比較は、etcd GitHubリポジトリで利用できる。この記事の執筆時点での最新のetcdバージョンは3.4.0であり、ソースコードはGitHubで入手できる。