Serwer cloud dla Docker Swarm w Europie
Docker Swarm to wbudowany tryb klastrowania dla Docker Engine. Jest prostszy niz Kubernetes, dziala ze standardowymi plikami docker-compose po drobnych zmianach i jest praktyczna sciezka dla zespołów, które juz uzywaja Dockera, ale chca uruchamiać obciazenia na wielu hostach.
Jesli Twój zespol przechodzi z docker-compose na jednym serwerze do konfiguracji wielu hostów, Docker Swarm warto ocenic przed zobowiazaniem sie do złożoności Kubernetes.
Dlaczego hosting w UE ma znaczenie dla Docker Swarm
Docker Swarm rozdziela kontenery między wezlami menedzera i pracownika przy uzyciu sieci nakldakowej. Latencja między wezlami wplywa na szybkosc komunikacji serwisów i niezawodność protokołu konsensusu Raft dla synchronizacji węzłów menedzera.
Umieszczenie wszystkich węzłów Swarm w tym samym centrum danych w UE daje latencje między wezlami poniżej milisekundy. Instancje cloud DCXV w tym samym centrum danych dzieląc prywatna sieć.
Zgodność z RODO to kolejny powod hostingu w UE. Jesli Twoje serwisy Swarm przetwarzaja dane osobowe europejskich użytkowników, dane te musza pozostawac w jurysdykcji UE.
Minimalne wymagania serwera
Docker Swarm jest lzejszy niz Kubernetes.
Dla węzłów menedzera:
- RAM: minimum 2 GB
- CPU: minimum 1 rdzen (zalecane 2 rdzenie)
- Dysk: 20 GB SSD
- Docker Engine: wersja 24 lub nowsza
Dla węzłów roboczych:
- RAM: minimum 2 GB na węzeł
- CPU: minimum 1-2 rdzenie na węzeł
- Dysk: 20 GB SSD na węzeł
Dla tolerancji błędów uzyj 3 węzłów menedzera i tylu pracowników, ile wymaga Twoje obciążenie.
Zalecana konfiguracja DCXV
Instancje cloud DCXV na https://dcxv.com/data-center#cloud zaczynaja sie od 15 EUR/miesiąc. Minimalna konfiguracja Docker Swarm z 3 menedżerami i 2 pracownikami dziala dobrze na pięciu instancjach 2 GB RAM / 2 vCPU.
Wszystkie instancje cloud DCXV w tym samym centrum danych sa polaczone przez prywatna sieć o niskiej latencji. Wsparcie inżynierów 24/7 jest wlaczone bez dodatkowych kosztów.
Dla większych flot dedykowane serwery DCXV zaczynaja sie od 49 EUR/miesiąc.
Przewodnik konfiguracji
Inicjalizacja klastra Docker Swarm na instancjach DCXV:
# Na pierwszym wezle menedzera: zainicjuj swarm
docker swarm init --advertise-addr <manager-private-ip>
# Pobierz token dolaczenia pracownika
docker swarm join-token worker
# Pobierz token dolaczenia menedzera
docker swarm join-token manager
# Na każdym dodatkowym wezle menedzera: dołącz jako menedzer
docker swarm join --token <manager-token> <first-manager-ip>:2377
# Na każdym wezle roboczym: dołącz do swarm
docker swarm join --token <worker-token> <first-manager-ip>:2377
Oczekiwana wydajność
Na 5-wezlowym klastrze Docker Swarm z instancjami 2 GB / 2 vCPU:
- Czas uruchamiania serwisu 5-15 sekund dla typowych obrazów kontenerów
- Przepustowosc sieci nakladkowej 500 Mbps do 2 Gbps między wezlami
- Aktualizacje konsensusu Raft propaguja sie w mniej niz 50 ms
- Rolling updates bez przestojów dla serwisów z 2 lub wieccej replikami
- Klaster tej wielkości obsluguje 50-200 rownoczesnych serwisów
To oczekiwania dla sprzętu tej klasy, a nie pomiary z naszego laboratorium. Traktuj je jako punkt wyjścia do doboru rozmiaru i zmierz własne obciążenie: realne liczby zależą od twoich danych, zapytań i tuningu znacznie bardziej niż od dostawcy.
