Repolode
etcd-io

etcd-io/etcd

RaftコンセンサスとgRPC APIを基盤とする、分散システムの重要データ向けの分散型・高信頼キー・バリューストア。

スター
52,401
フォーク
10,541
未解決の Issue
391
最終コミット
8 時間前

これは何?

etcdはGoで書かれた分散型キー・バリューストアです。Raftコンセンサスアルゴリズムを使ってクラスタ内のメンバー間でデータを複製するため、一部のメンバーに障害が発生しても、クラスタの可用性と一貫性を保てます。クライアントはgRPC APIを通じて操作でき、キーの読み書きに使えるコマンドラインクライアントetcdctlも提供されています。

etcdは、大量データの保存ではなく、設定やサービスのメタデータなど、調整に必要な少量の重要データの保存に重点を置いています。TLSを自動で利用でき、オプションでクライアント証明書による認証もサポートします。クラスタメンバー間の通信にはポート2380を、クライアント接続にはデフォルトでポート2379を使用します。

etcdはKubernetesのバックエンドストアとして広く利用されており、ほかの分散システム関連プロジェクトとも組み合わせて使われています。リポジトリにはProcfileとgoremanを使ったローカルの複数メンバー構成のクラスタ環境に加え、v3 API向けのGoクライアントライブラリが含まれています。

主な機能

  • 01Raftベースのレプリケーションにより、メンバーに障害が発生してもクラスタの一貫性と可用性を維持します。
  • 02キーの読み取り、書き込み、変更監視に対応する明確な仕様のgRPC API。
  • 03クライアント証明書認証をオプションで利用できる、自動TLS。
  • 04クラスタを操作するためのコマンドラインクライアントetcdctl。
  • 05v3 API向けのGoクライアントライブラリ。
  • 06Procfileとgoremanを使ったローカルの複数メンバー構成のクラスタ環境。

ユースケース

  • Kubernetesコントロールプレーンのクラスタ状態や設定の保存。
  • 分散アプリケーションにおけるサービスディスカバリと連携。
  • 複数のサーバー間で少量の重要なメタデータを一貫性を保って管理。
  • Raftベースの分散システムをローカルで学習・テスト。

クイックスタート

  1. 1

    リリースページからビルド済みのリリースバイナリをダウンロードする

  2. 2

    単一メンバーのetcdサーバーを起動する

    /tmp/etcd-download-test/etcd
  3. 3

    etcdctlでキーを設定する

    etcdctl put mykey "this is awesome"
  4. 4

    etcdctlでキーを取得する

    etcdctl get mykey

使う前に知っておきたいこと

  • 複数メンバーのローカルクラスターを実行するには、goremanをインストールし、リポジトリのProcfileを使用する必要があります。
  • mainブランチは不安定だったり、正常に動作しなかったりする可能性があるため、本番環境ではタグ付きリリースを使用してください。

トピック

よくある質問

etcd とは?
RaftコンセンサスとgRPC APIを基盤とする、分散システムの重要データ向けの分散型・高信頼キー・バリューストア。 etcdはGoで書かれた分散型キー・バリューストアです。Raftコンセンサスアルゴリズムを使ってクラスタ内のメンバー間でデータを複製するため、一部のメンバーに障害が発生しても、クラスタの可用性と一貫性を保てます。クライアントはgRPC APIを通じて操作でき、キーの読み書きに使えるコマンドラインクライアントetcdctlも提供されています。
etcd は無料で使えますか?ライセンスは?
etcd は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
etcd は今もメンテナンスされていますか?
活発にメンテナンス中。etcd の最終コミットは 2026年10月19日 です。
etcd は何に使えますか?
Kubernetesコントロールプレーンのクラスタ状態や設定の保存。 分散アプリケーションにおけるサービスディスカバリと連携。 複数のサーバー間で少量の重要なメタデータを一貫性を保って管理。 Raftベースの分散システムをローカルで学習・テスト。
etcd のインストール方法は?
リリースページからビルド済みのリリースバイナリをダウンロードする 単一メンバーのetcdサーバーを起動する: /tmp/etcd-download-test/etcd etcdctlでキーを設定する: etcdctl put mykey "this is awesome" etcdctlでキーを取得する: etcdctl get mykey
etcd はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/etcd-io/etcd

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト