etcd nedir?
- Docker & Kubernetes kursu
- Uzman
- Ders 1/47
- 4 dk
etcd'nin küme durumunu sakladığını öğrenirsin.
etcd nedir?
etcd, cluster'ın tüm durumunu (her nesnenin istenen ve gerçek hâlini) tutan dağıtık, tutarlı bir anahtar-değer veritabanıdır. Tutarlılığı Raft uzlaşma algoritmasıyla sağlar: yazma, üyelerin çoğunluğu (quorum) onaylayınca kesinleşir. Bu yüzden etcd tek sayıda üyeyle (3, 5) çalıştırılır.
3 üye -> quorum 2 -> 1 üye kaybına dayanır
5 üye -> quorum 3 -> 2 üye kaybına dayanır
4 üye -> quorum 3 -> yine yalnızca 1 kayba dayanırYalnızca kube-apiserver etcd'ye doğrudan bağlanır; diğer tüm bileşenler API sunucusu üzerinden konuşur.
etcd'nin içine bakmak
Kubernetes nesneleri etcd'de /registry/<tür>/<namespace>/<ad> anahtarlarında saklanır. etcdctl ile (control-plane node'unda, sertifikalarla) incelenebilir:
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
get /registry/deployments/default --prefix --keys-only
/registry/deployments/default/web
/registry/deployments/default/apiDeğerler Protobuf ile kodlanmıştır; Secret'lar ise ancak şifreleme yapılandırıldıysa okunamaz durumdadır.
Uygulama etcd sağlığı
İki komut yaz (karttaki sertifika bayraklarıyla birlikte, her biri tek satırda): etcdctl ... endpoint health ile sağlığı sorgula; etcdctl ... member list -w table ile üyeleri listele. Bayraklar: --endpoints=https://127.0.0.1:2379, --cacert=/etc/kubernetes/pki/etcd/ca.crt, --cert=/etc/kubernetes/pki/etcd/server.crt, --key=/etc/kubernetes/pki/etcd/server.key.
Başlangıç kodu
# buraya yazÖrnek çözüm
etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint health
etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key member list -w tableBeklenen çıktı
https://127.0.0.1:2379 is healthy: successfully committed proposal: took = 4.2ms +------------------+---------+-------+---------------------------+ | ID | STATUS | NAME | PEER ADDRS | +------------------+---------+-------+---------------------------+ | 8e9e05c52164694d | started | cp-1 | https://192.168.49.2:2380 | +------------------+---------+-------+---------------------------+
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 3 üyeli bir etcd kümesinde 2 üye kaybedilirse ne olur?
- Quorum kaybolur; cluster yazma kabul etmez Doğru cevap
- Normal çalışmaya devam eder
- Kalan üye lider olur ve yazar
- Veriler silinir
Açıklama: Mevcut iş yükleri çalışmayı sürdürür ama hiçbir değişiklik yapılamaz.
2 Yalnızca anahtarları listele.
etcdctl get /registry/pods/default --prefix ____
etcdctl get /registry/pods/default --prefix --keys-only
Açıklama: --keys-only değerleri yazdırmaz.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
etcd |
Cluster durumu |
Raft |
Uzlaşma algoritması |
quorum |
Çoğunluk |
/registry/ |
Anahtar öneki |