< Wszystkie tematy

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.