D10.1 Docker Swarm — Θεωρία 🐝
Τι είναι το Docker Swarm
Το Docker Swarm είναι το native clustering solution του Docker. Μετατρέπει πολλά Docker hosts σε ένα virtual cluster που διαχειρίζεται containers ως services.
Swarm vs Kubernetes
┌─────────────────────────────────────────────────────────┐
│ Swarm vs Kubernetes │
├─────────────────────┬───────────────────────────────────┤
│ Docker Swarm │ Kubernetes │
├─────────────────────┼───────────────────────────────────┤
│ ✅ Απλό setup │ ❌ Πολύπλοκο setup │
│ ✅ Docker-native │ ⚙️ Χρειάζεται extra tools │
│ ✅ Λιγότερα resources│ ❌ Heavy resource overhead │
│ ✅ Ιδανικό για SMB │ ✅ Enterprise scale │
│ ❌ Λιγότερα features│ ✅ Auto-scaling, CRDs, κ.ά. │
│ ❌ Μικρή community │ ✅ Τεράστια community │
└─────────────────────┴───────────────────────────────────┘
→ Χρησιμοποίησε Swarm αν:
├── Έχεις ήδη Docker
├── 2-10 nodes
├── Δεν χρειάζεσαι Kubernetes features
└── Θέλεις απλό HA setup
Βασικές έννοιες
Docker Swarm Concepts:
│
├── Node
│ ├── Manager Node → orchestration, scheduling, raft consensus
│ └── Worker Node → εκτελεί tasks
│
├── Service
│ ├── Image + config + replicas
│ ├── replicated: N αντίγραφα σε workers
│ └── global: 1 σε ΚΑΘΕ node
│
├── Task
│ └── Μια εκτέλεση ενός container
│ (1 service × N replicas = N tasks)
│
├── Stack
│ └── Σύνολο services (σαν docker-compose)
│
└── Overlay Network
└── Multi-host network (αυτόματο DNS)
Swarm Quorum
Manager nodes και quorum (fault tolerance):
│
├── 1 manager → 0 fault tolerance (dev only!)
├── 3 managers → 1 μπορεί να πέσει ✅
├── 5 managers → 2 μπορούν να πέσουν ✅
└── 7 managers → 3 μπορούν να πέσουν ✅
Κανόνας: floor(N/2) + 1 = quorum
5 managers → quorum = 3
Αν 3+ πέσουν → cluster freeze (no new tasks)
Συνιστώμενο για production: 3 managers
Σύνοψη D10.1
Docker Swarm
│
├── Nodes: Manager (orchestration) + Worker (execution)
├── Service: image + replicas + update config
├── Task: 1 running container (= 1 service replica)
├── Stack: multi-service (compose-style)
└── Quorum: 3 managers → 1 fault tolerance ✅