Kubernetes
Kubernetes, często skracany do K8s, to otwartoźródłowa platforma do orkiestracji kontenerów. Została pierwotnie stworzona przez Google, a obecnie jest rozwijana przez Cloud Native Computing Foundation (CNCF). Jej nadrzędnym zadaniem jest automatyzacja procesów wdrażania, skalowania i zarządzania skonteneryzowanymi aplikacjami na dużą skalę. W świecie, gdzie aplikacje są budowane jako zbiór wielu niezależnych mikrousług w kontenerach, Kubernetes stał się standardem do zarządzania ich złożonością.
Podczas gdy Docker pozwala na uruchomienie pojedynczego kontenera, Kubernetes zarządza całym ich cyklem życia w środowisku produkcyjnym. System ten jest rozproszony na wiele serwerów (fizycznych lub wirtualnych), które tworzą klaster. Kubernetes dba o to, aby aplikacje działały w sposób niezawodny i wysoce dostępny.
Architektura klastra Kubernetes składa się z dwóch głównych typów maszyn:
- Płaszczyzna sterowania (Control Plane / Master Node): Mózg operacji. Odpowiada za podejmowanie globalnych decyzji dotyczących klastra (np. gdzie uruchomić nowy kontener), wykrywanie i reagowanie na zdarzenia oraz przechowywanie stanu całego systemu.
- Węzły robocze (Worker Nodes): Maszyny, na których faktycznie uruchamiane są aplikacje. Każdy węzeł roboczy komunikuje się z węzłem głównym i wykonuje jego polecenia.
Kubernetes operuje na zestawie obiektów, które opisują pożądany stan systemu. Administrator lub deweloper definiuje (najczęściej w plikach YAML), jak ma wyglądać aplikacja. Kubernetes nieustannie pracuje nad tym, aby rzeczywisty stan klastra odpowiadał temu pożądanemu stanowi.
Najważniejsze obiekty to:
- Pod – najmniejsza jednostka wdrożeniowa,
- Deployment – zarządza cyklem życia Podów i replikami,
- Service – zapewnia stabilny adres sieciowy dla Podów,
- Ingress – zarządza dostępem z zewnątrz klastra.
Główne funkcje Kubernetes to samozdrowienie (automatyczne restartowanie uszkodzonych kontenerów), automatyczne skalowanie oraz odkrywanie usług i równoważenie obciążenia.
