W środowiskach opartych na Docker Swarm warto zadbać o dobrą organizację i kontrolę nad tym, gdzie uruchamiane są poszczególne usługi. Jednym z najprostszych i najpotężniejszych narzędzi do tego celu są etykiety węzłów (node labels).
W tym wpisie pokażę Ci:
- do czego służą etykiety,
- jak je nadać,
- i jak sprawdzić ich przypisanie.
Co to są etykiety węzłów (node labels
)?
Etykiety węzłów to pary klucz=wartość, które przypisujesz do konkretnych serwerów w klastrze Docker Swarm. Umożliwiają one:
- Grupowanie węzłów wg roli (np.
role=frontend
,stack=monitoring
) - Precyzyjne rozmieszczanie usług (np.
--constraint 'node.labels.stack == monitoring'
) - Skalowanie z zachowaniem logiki (np. HA tylko na określonych maszynach)
- Ułatwienie automatyzacji i utrzymania klastra
Jak nadać etykiety węzłom w Swarmie?
Etykiety możesz nadawać tylko z poziomu węzła manager
, ponieważ tylko on ma uprawnienia do zarządzania klastrem. Na sam początek sprawdźmy listę węzłów:
docker node ls
Następnie nadajemy etykietę dla wybranych serwerów. W moim przypadku mam tylko dwa serwery w klastrze swarm i obu nadam tą samą etykietę monitoring
:
# nadajemy etykiety na managerze
docker node update --label-add role=manager --label-add stack=backend serer1
docker node update --label-add role=worker --label-add stack=monitoring serwer2
Aby sprawdzić czy nasze zmiany zostały odpowiednio zatwierdzone, wydajemy następujące polecenie dla serwera1:
docker node inspect serwer1 --format '{{ json .Spec.Labels }}'
Aby zweryfikować kolejne serwery zmieniamy nazwę serwera i podajemy podobną składnie jak dla serwer1.
W kolejnej części pokażę Ci, jak wykorzystać te etykiety w praktyce.