encyklopedia.space

Kubernetes

Kubernetes (wym. ku-ber-ne-tes) – otwarto‑źródłowa platforma do orkiestracji kontenerów, umożliwiająca automatyzację wdrażania, skalowania i zarządzania aplikacjami w środowiskach chmury obliczeniowej oraz w tradycyjnych centrach danych.

Historia

Projekt Kubernetes został zapoczątkowany w 2014 roku w firmie Google, w oparciu o wewnętrzny system Borg. Pierwsza publiczna wersja oprogramowania open source pojawiła się w 2015 roku. Od tego czasu projekt jest rozwijany przez Cloud Native Computing Foundation (CNCF) i cieszy się szerokim wsparciem ze strony społeczności oraz licznych dostawców usług chmurowych.

Architektura

Kubernetes przyjmuje architekturę typu master‑worker, w której kluczowymi elementami są:

  • API Server – centralny punkt komunikacji, udostępniający interfejs RESTful oraz gRPC do zarządzania zasobami klastra.
  • etcd – rozproszona, wysokiej dostępności baza klucz‑wartość przechowująca stan klastra.
  • Scheduler – komponent przydzielający pody (najmniejsze jednostki uruchomieniowe) do odpowiednich węzłów worker‑node na podstawie dostępnych zasobów i polityk.
  • Controller Manager – zbiór kontrolerów (np. ReplicaSet, Deployment, StatefulSet) dbających o pożądany stan obiektów.
  • Kubelet – agent działający na każdym węźle pracowniczym, odpowiedzialny za uruchamianie i monitorowanie kontenerów.
  • Kube‑Proxy – zapewnia reguły routingowe i load‑balancing na poziomie warstwy sieciowej.

Podstawowe pojęcia

Kontener
Izolowana jednostka uruchomieniowa, najczęściej oparta na Dockerze lub CRI‑O.
Pod
Podstawowa jednostka skalowalności w Kubernetes – grupuje jeden lub kilka kontenerów współdzielących sieć i magazyn.
Deployment
Obiekt definiujący deklaratywny opis żądanej liczby replik i strategii aktualizacji aplikacji.
Service
Abstrakcja zapewniająca stały adres IP i nazwę DNS dla zestawu podów, umożliwiająca ich odkrywanie i równoważenie obciążenia.
Namespace
Mechanizm izolacji logicznej w klastrze, pozwalający na rozdzielenie zasobów w ramach jednej instalacji Kubernetes.

Funkcje i zalety

  • Automatyczne skalowanie poziome (HPA) i pionowe (VPA).
  • Samonaprawianie – niezdolne do działania pod'y są automatycznie restartowane lub replikiwane.
  • Wbudowane mechanizmy CI/CD oraz integracja z narzędziami takimi jak Helm czy Argo CD.
  • Wsparcie dla wielu środowisk: publiczne chmury (AWS, Azure, Google Cloud), prywatne chmury (OpenStack) oraz on‑premises.
  • Rozbudowany ekosystem dodatków: monitorowanie (Prometheus), logowanie (EFK stack), sieciowanie (Calico, Weave Net).

Porównanie z innymi rozwiązaniami

Do najpopularniejszych alternatyw w dziedzinie orkiestracji kontenerów należą:

  • Docker Swarm – prostszy, ale mniej rozbudowany pod względem funkcji skalowania i zarządzania stanem.
  • Nomad – rozwiązanie od HashiCorp, obsługujące zarówno kontenery, jak i maszyny wirtualne.
  • OpenShift – komercyjna dystrybucja Kubernetes z dodatkowymi funkcjami bezpieczeństwa i zarządzania.

Implementacje i dystrybucje

Istnieje wiele gotowych dystrybucji Kubernetes, które upraszczają instalację i eksploatację:

  • kubeadm – oficjalne narzędzie do ręcznej instalacji klastra.
  • Minikube – lekka, lokalna wersja przeznaczona do testów i deweloperki.
  • Kind – uruchamia klastry w kontenerach Docker.
  • Rancher – platforma do zarządzania wieloma klastrami Kubernetes.
  • Amazon EKS, Google GKE, Azure AKS – zarządzane usługi chmurowe.

Przyszłość

Kubernetes stale ewoluuje – w 2024 roku wprowadzono wsparcie dla IPv6, lepsze mechanizmy zarządzania zasobami GPU oraz rozszerzenia związane z service mesh (np. Istio). Społeczność kontynuuje prace nad roadmapą 2025, której celem jest dalsze uproszczenie operacji oraz zwiększenie bezpieczeństwa.

Zobacz także