DevOps Pipeline
Analiza

Konteneryzacja: Docker i Kubernetes

Logo Docker
Logo Kubernetes

Rola Dockera

Docker to platforma umożliwiająca pakowanie aplikacji wraz z jej zależnościami w izolowane jednostki nazywane kontenerami. Kontener zawiera wszystko, co jest potrzebne do uruchomienia aplikacji — kod, biblioteki oraz zmienne środowiskowe — co pozwala na jego uruchomienie w zasadzie w każdym środowisku obsługującym silnik kontenerów.

Orkiestracja z Kubernetes

Kubernetes to system służący do zarządzania grupami kontenerów uruchomionych na wielu maszynach jednocześnie. Odpowiada za rozdzielanie obciążenia, automatyczne uruchamianie ponowne kontenerów w przypadku awarii oraz skalowanie liczby instancji aplikacji w zależności od bieżącego zapotrzebowania.

Deklaratywny opis infrastruktury

Konfiguracja zasobów w Kubernetes opisywana jest zwykle w plikach manifestów, które określają pożądany stan systemu — sam system odpowiada za doprowadzenie środowiska do zgodności z tym opisem.

Różnice w zastosowaniu

Docker odpowiada przede wszystkim za budowanie i uruchamianie pojedynczych kontenerów, natomiast Kubernetes koncentruje się na zarządzaniu wieloma kontenerami rozproszonymi na wielu maszynach. W praktyce oba rozwiązania są często stosowane razem — Docker jako narzędzie do tworzenia obrazów, Kubernetes jako warstwa orkiestracji.