etcd
Kubernetesのデータを保存する分散Key/Value Store
こういう情報を保存する
存在するノードの詳細
クラスタに存在するリソースの詳細
λ kubectl get poしたときの情報
etc.
#WIP
gpt-5.icon
クラスターの中核を担う 分散キーバリューストア です。
Kubernetes の すべての状態データ(クラスタ情報) を保存・管理しており、いわば「Kubernetes の脳みそ」にあたります。
etcd とは
CNCF プロジェクトである 分散型の一貫性のあるキーバリューストア
Raft アルゴリズムに基づく リーダー選出 & レプリケーション によって、高可用性・一貫性を保証
etcd は単独でも利用されることがありますが、Kubernetes では「クラスタの状態データベース」として組み込まれています
Kubernetes における役割
1. クラスタ状態の保存
ノード情報
Pod の定義と状態
ConfigMap / Secret
Service / Endpoint 情報
RBAC ポリシーなど
→ kubectl get や kubectl describe で見える情報はすべて etcd に保存されています。
2. クラスタ制御のソース・オブ・トゥルース
kube-apiserver が etcd を参照し、
他のコンポーネント(scheduler / controller-manager / kubelet)がそれを元に動く仕組み。
3. 強い一貫性
Raft により 分散環境でもデータの正しさが保証 されるため、リーダーが落ちてもフォロワーが昇格して継続可能。
運用上のポイント
バックアップが超重要
etcd のデータ消失 = クラスタの全状態の喪失
定期的に etcdctl snapshot save でスナップショットを取得しておくのが必須
高可用性構成
odd 数(3台, 5台など)の etcd クラスタで冗長化するのがベストプラクティス
コントロールプレーンノードに同居させるか、専用クラスタを立てる方法がある
パフォーマンスチューニング
書き込み負荷が高いと etcd がボトルネックになることも
I/O レイテンシが低い SSD を推奨
過剰なウォッチやイベント発生を避ける工夫も必要