Skip to content

etcd w klastrze Kubernetes HA

W przypadku etcd osiągnięcie HA jest nieco trudniejsze. Konieczne jest osiągnięcie quorum do poprawnego działania klastra etcd.

Wynika to z algorytmu, który działa wewnątrz etcd, jest to RAFT. Jeden z węzłów pełni rolę lidera, reszta jest Read-Only, lecz może przekazywać zapisy do lidera.

Gdy nie jest zapewnione quorum, cały klaster przechodzi w stan Read-only, nic nie zapisuje.

Do osiągnięcia Quorum konieczne jest, aby:

\[ Quorum = floor(N/2) + 1 $$ czyli w przypadku 2 węzłów, przy awarii jednego z węzłów nie jest możliwe Quorum: $$ N = 2 $$ $$ Quorum = floor(2/2) + 1 = 1 + 1 = 2 \]

Do awarii jednego z wezłów konieczne jest posiadanie chociaż 3 węzłów etcd: $$ N = 3 $$ $$ Quorum = floor(3/2) + 1 = 1 + 1 = 2 $$

wtedy dwa działające węzły tworzą już Quorum.

Warning

Najlepiej wybierać nieparzystą liczbę węzłów do klastra etcd - nie ma ryzyka wystąpienia partycji sieciowych z quorum (np. dla 6 węzłów, gdy nastąpi podział sieci po 3 węzły nigdy nie wystąpi quorum).