Orkiestracja kontenerów to automatyczne zarządzanie cyklem życia wielu kontenerów naraz: ich uruchamianiem, rozmieszczaniem na serwerach, skalowaniem w górę i w dół, łączeniem ich siecią oraz samonaprawą, gdy coś padnie. Mówiąc prościej: zamiast ręcznie odpalać docker run na pięciu maszynach i modlić się, że nic się nie wywali w nocy, oddajesz to zadanie systemowi, który pilnuje wszystkiego za Ciebie. Najpopularniejszym narzędziem orkiestracji jest Kubernetes (w skrócie K8s), choć istnieją też lżejsze alternatywy jak Docker Swarm czy HashiCorp Nomad.
Jak to działa i do czego służy
Orkiestrator pracuje w modelu deklaratywnym. Ty opisujesz stan docelowy — na przykład: „chcę mieć zawsze 3 działające kopie mojej aplikacji” — a system sam dba o to, żeby ten stan był utrzymany. Jeśli jeden kontener się wykrzaczy, orkiestrator zauważa różnicę między stanem pożądanym a faktycznym i automatycznie uruchamia nowy. To właśnie ta samonaprawa (self-healing) jest jedną z najważniejszych zalet.
Do tego dochodzi automatyczne skalowanie (więcej ruchu = więcej kontenerów), load balancing (rozkładanie żądań między kopie), service discovery (kontenery same się odnajdują w sieci) oraz rolling updates — aktualizacja aplikacji bez przerwy w działaniu, kontener po kontenerze. Bez orkiestracji musiałbyś to wszystko klepać ręcznie albo pisać własne skrypty, które i tak prędzej czy później Cię zawiodą.
Przykład z praktyki
Załóżmy, że masz aplikację webową spakowaną w obraz Dockera. W Kubernetesie tworzysz tzw. Deployment, w którym deklarujesz liczbę replik. Komenda do skalowania wygląda tak:
kubectl scale deployment moja-apka --replicas=5
Od tej chwili K8s pilnuje, żeby zawsze działało dokładnie 5 instancji. Wyłączysz jeden węzeł na konserwację? Orkiestrator przerzuci kontenery na inne maszyny, a Ty nawet się nie zorientujesz. Stan klastra sprawdzisz przez kubectl get pods.
Częste błędy i mity
- „Kubernetes do wszystkiego.” Dla jednego małego kontenera na VPS-ie K8s to armata na muchę. Czasem zwykły Docker Compose albo Swarm wystarczy.
- Mylenie konteneryzacji z orkiestracją. Docker buduje i uruchamia pojedyncze kontenery. Orkiestrator zarządza nimi w skali — to dwa różne poziomy.
- Brak limitów zasobów. Jak nie ustawisz
requestsilimitsna CPU i pamięć, jeden rozpędzony pod potrafi zagłodzić cały węzeł.
Pojęcia powiązane
Warto znać: Docker i konteneryzacja, Kubernetes (pod, deployment, service, node), Docker Swarm, HashiCorp Nomad, mikroserwisy, CI/CD oraz Infrastructure as Code (np. Helm czy Terraform).