Robocikowo>ROBOCIKOWO
Infrastruktura

K8s

2014AktywnyOpublikowano: 1 października 2026Aktualizacja: 1 października 2026Opublikowany
Otwartoźródłowy system orkiestracji kontenerów, który automatyzuje wdrażanie, skalowanie i zarządzanie aplikacjami kontenerowymi w klastrach maszyn.
Kluczowa innowacja
Zadeklaratywna, samonaprawialna orkiestracja kontenerów: użytkownik opisuje pożądany stan aplikacji, a system (pętle kontrolne) nieustannie doprowadza rzeczywisty stan klastra do tego stanu, uniezależniając wdrożenia od konkretnych maszyn.
Kategoria
Infrastruktura
Poziom abstrakcji
System
Poziom operacji
OrkiestracjaWdrożenieUdostępnianie
Zastosowania
Orkiestracja mikroserwisówPlatformy MLOps i serwowanie modeli AI (KServe, Kubeflow)Autoskalowanie aplikacji webowychPrzetwarzanie wsadowe i zadania ML na GPUWdrożenia wielochmurowe i hybrydoweZarządzanie flotami agentów AI

Jak działa

Klaster Kubernetes składa się z warstwy sterującej (control plane) oraz węzłów roboczych (nodes). Użytkownik zgłasza do serwera API deklaratywny opis pożądanego stanu (np. manifest Deployment określający liczbę replik). Serwer API zapisuje ten stan w rozproszonym magazynie klucz-wartość etcd. Scheduler przydziela pody do węzłów na podstawie zasobów i ograniczeń, a controller manager uruchamia pętle kontrolne, które porównują stan rzeczywisty z pożądanym i podejmują działania naprawcze. Na każdym węźle agent kubelet uruchamia i nadzoruje kontenery za pośrednictwem runtime kontenerów (zgodnego z CRI), a kube-proxy obsługuje reguły sieciowe i równoważenie ruchu do usług (Service).

Rozwiązany problem

Ręczne wdrażanie i utrzymywanie wielu kontenerów na flocie serwerów jest podatne na błędy i słabo skalowalne. Kubernetes rozwiązuje problem rozmieszczania (schedulingu) kontenerów na dostępnych węzłach, automatycznego restartu i zastępowania awarii, skalowania w odpowiedzi na obciążenie oraz spójnego, deklaratywnego zarządzania konfiguracją w środowiskach rozproszonych i wielochmurowych.

Komponenty

Serwer API (kube-apiserver)Warstwa sterująca (control plane)

Centralny punkt dostępowy klastra, udostępniający REST API Kubernetes. Waliduje i przetwarza żądania oraz jest jedynym komponentem komunikującym się bezpośrednio z etcd.

etcdWarstwa sterująca (control plane)

Rozproszony, spójny magazyn klucz-wartość przechowujący cały stan i konfigurację klastra; stanowi źródło prawdy o pożądanym stanie.

Scheduler (kube-scheduler)Warstwa sterująca (control plane)

Przydziela nowo utworzone pody do węzłów na podstawie dostępnych zasobów, ograniczeń powinowactwa (affinity), tolerancji i innych reguł.

Controller manager (kube-controller-manager)Warstwa sterująca (control plane)

Uruchamia pętle kontrolne (kontrolery), które obserwują stan klastra i doprowadzają stan rzeczywisty do pożądanego, np. utrzymując zadaną liczbę replik.

kubeletWęzeł roboczy (node)

Agent działający na każdym węźle; przyjmuje specyfikacje podów z serwera API i zapewnia, że opisane kontenery są uruchomione i zdrowe.

kube-proxyWęzeł roboczy (node)

Utrzymuje reguły sieciowe na węzłach, umożliwiając komunikację sieciową z podami oraz równoważenie ruchu do usług (Service).

Runtime kontenerówWęzeł roboczy (node)

Oprogramowanie odpowiedzialne za uruchamianie kontenerów (np. containerd, CRI-O), komunikujące się z kubeletem przez interfejs CRI.

PodObiekt / abstrakcja wdrożeniowa

Najmniejsza jednostka wdrożeniowa Kubernetes: jeden lub więcej współdzielących sieć i magazyn kontenerów, planowanych i uruchamianych razem.

DeploymentObiekt / abstrakcja wdrożeniowa

Obiekt deklaratywnie zarządzający zestawem replik podów, obsługujący aktualizacje kroczące (rolling updates) i wycofywanie zmian (rollback).

ServiceObiekt / abstrakcja sieciowa

Stabilna abstrakcja sieciowa (stały adres i nazwa DNS) zapewniająca dostęp i równoważenie ruchu do dynamicznie zmieniającego się zbioru podów.

Implementacja

Pułapki implementacyjne
Brak żądań i limitów zasobówWysoka

Pody bez zdefiniowanych requests/limits mogą być źle rozplanowane i doprowadzić do wyczerpania zasobów węzła oraz eksmisji (eviction).

Rozwiązanie:Definiować resources.requests i resources.limits oraz stosować ResourceQuota i LimitRange na poziomie namespace.
Niewłaściwa obsługa etcdKrytyczna

etcd przechowuje cały stan klastra; brak kopii zapasowych lub przeciążenie prowadzą do utraty danych lub niestabilności control plane.

Rozwiązanie:Regularnie wykonywać snapshoty etcd, monitorować opóźnienia i uruchamiać etcd w konfiguracji wysokiej dostępności.
Zbyt szerokie uprawnienia (RBAC) i domyślne ustawieniaWysoka

Nadmiernie szerokie role RBAC, uprzywilejowane kontenery i brak NetworkPolicy zwiększają powierzchnię ataku klastra.

Rozwiązanie:Stosować zasadę najmniejszych uprawnień w RBAC, ograniczać przywileje kontenerów i egzekwować NetworkPolicy.

Ewolucja

Oryginalny paper · 2015 · EuroSys 2015 · Abhishek Verma
Large-scale cluster management at Google with Borg
Abhishek Verma, Luis Pedrosa, Madhukar R. Korupolu, David Oppenheimer, Eric Tune, John Wilkes
2014
Google ogłasza Kubernetes i udostępnia go jako open source
Punkt przełomowy

6 czerwca 2014 Google ogłasza Kubernetes, projekt wywodzący się z doświadczeń z wewnętrznym systemem Borg.

2015
Publikacja pracy o systemie Borg

Praca „Large-scale cluster management at Google with Borg" (EuroSys 2015) dokumentuje system, który zainspirował Kubernetes.

2015
Wydanie wersji 1.0 i przekazanie do CNCF
Punkt przełomowy

21 lipca 2015 ukazuje się Kubernetes 1.0; projekt zostaje technologią założycielską nowo utworzonej Cloud Native Computing Foundation (CNCF).

Hiperparametry (konfigurowalne osie)

Liczba replikWysoka

Pożądana liczba identycznych instancji poda utrzymywanych przez Deployment/ReplicaSet.

Żądania i limity zasobówKrytyczna

Deklarowane zapotrzebowanie i górne granice CPU/pamięci dla kontenerów, wpływające na scheduling i stabilność węzłów.

Autoskalowanie poziomeŚrednia

Reguły automatycznej zmiany liczby replik w zależności od metryk (np. użycia CPU lub metryk własnych).

Strategia aktualizacjiŚrednia

Sposób wdrażania nowych wersji (np. RollingUpdate vs Recreate) oraz parametry maxSurge/maxUnavailable.

Paradygmat wykonania

Tryb główny
Warunkowy

Kubernetes nie jest architekturą sieci neuronowej; pola paradygmatu wykonania opisują jego model sterowania (pętle kontrolne reagujące na stan), a nie przepływ obliczeń ML.

Wzorzec aktywacji
Zależne od wejścia
Mechanizm routingu

Scheduler kieruje pody do konkretnych węzłów, a kontrolery (pętle reconciliation) warunkowo podejmują działania naprawcze zależnie od różnicy między stanem pożądanym a rzeczywistym.

Wymagania sprzętowe

Podstawowe

Kubernetes orkiestruje kontenery niezależnie od warstwy obliczeniowej; działa na CPU, a akceleratory (GPU/TPU) udostępnia węzłom przez wtyczki urządzeń (device plugins).