Kubernetes — co to jest i jak działa?
Kubernetes (K8s) to system orkiestracji kontenerów od Google. Poznaj architekturę klastra, kluczowe obiekty (Pod, Deployment, Service) i workflowy wdrożeń.
Czym jest Kubernetes?
Kubernetes (K8s) to open-source'owy system orkiestracji kontenerów — automatyzuje wdrażanie, skalowanie i zarządzanie konteneryzowanymi aplikacjami. Stworzony przez Google na bazie wewnętrznego systemu Borg, open-sourcowany w 2014 roku.
Kubernetes zarządza klastrem maszyn (węzłów) i automatycznie rozmieszcza kontenery w oparciu o dostępne zasoby. Zapewnia self-healing (restart padających kontenerów), automatyczne skalowanie, rolling updates bez downtime i load balancing.
2014
Rok open-sourcowania przez Google. Od 2016 r. projekt CNCF (Cloud Native Computing Foundation)
K8s
Skrót: K + 8 liter + s. Tak samo jak i18n (internationalization) i l10n (localization)
73%
Firm używa Kubernetes w produkcji wg CNCF Annual Survey 2023
Architektura klastra Kubernetes
Control Plane
API Server
Punkt wejścia do klastra — wszystkie operacje przechodzą przez API Server. kubectl komunikuje się przez REST API.
etcd
Rozproszony key-value store — przechowuje stan całego klastra. Single source of truth dla K8s.
Scheduler
Decyduje na którym węźle uruchomić nowy Pod na podstawie zasobów, affinity rules, taints/tolerations.
Controller Manager
Uruchamia kontrolery (Deployment, ReplicaSet, Node, Job) które zapewniają desired state klastra.
Worker Node
kubelet
Agent K8s na każdym węźle. Zarządza Podami, komunikuje się z container runtime, raportuje stan do API Server.
kube-proxy
Zarządza regułami sieciowymi (iptables/IPVS) dla komunikacji między serwisami.
Container Runtime
Uruchamia kontenery — containerd (default), CRI-O. Docker deprecated jako runtime od K8s 1.24.
Kluczowe obiekty Kubernetes
Pod
Najmniejsza jednostka — jeden lub kilka kontenerów. Ephemeral, zawsze na jednym węźle.
kubectl get pods -n production
Deployment
Zarządza ReplicaSet i Podami. Rolling updates, rollback, desired state.
kubectl rollout status deployment/my-app
Service
Stały endpoint sieciowy dla grupy Podów. Typy: ClusterIP, NodePort, LoadBalancer.
kubectl expose deployment my-app --port=80
Ingress
Zarządza zewnętrznym ruchem HTTP/HTTPS. Routing po hostach i ścieżkach, TLS termination.
kubectl get ingress -A
ConfigMap
Przechowuje konfigurację (env vars, pliki) oddzielnie od kodu. Nie dla danych wrażliwych.
kubectl create configmap app-config --from-file=config.yaml
Secret
Przechowuje dane wrażliwe (hasła, tokeny) base64-encoded. Integracja z Vault, AWS Secrets Manager.
kubectl create secret generic db-creds --from-literal=password=secret
PersistentVolume
Zewnętrzne storage niezależne od cyklu życia Poda. PVC (Claim) requestuje zasób PV.
kubectl get pv,pvc -n production
HorizontalPodAutoscaler
Automatycznie skaluje Pody na podstawie CPU, memory lub custom metrics.
kubectl get hpa -n production
Workflow wdrożenia w Kubernetes
1. Build
Buduj obraz Docker i pushuj do registry (Docker Hub, ECR, GCR, Harbor)
docker build -t myapp:v1.2.3 . && docker push registry/myapp:v1.2.3
2. Deploy
Aktualizuj Deployment z nowym tagiem obrazu
kubectl set image deployment/myapp myapp=registry/myapp:v1.2.3
3. Monitor
Sprawdź status rolling update
kubectl rollout status deployment/myapp
4. Rollback
Wróć do poprzedniej wersji jeśli coś poszło nie tak
kubectl rollout undo deployment/myapp
5. Scale
Ręczne lub automatyczne skalowanie liczby replik
kubectl scale deployment/myapp --replicas=5
FAQ — Kubernetes
Co to jest Kubernetes?
Kubernetes (K8s) to open-source'owy system do automatyzacji wdrażania, skalowania i zarządzania konteneryzowanymi aplikacjami. Stworzony przez Google na podstawie wewnętrznego systemu Borg, open-sourcowany w 2014 roku, teraz rozwijany przez CNCF (Cloud Native Computing Foundation). Kubernetes zarządza klastrami węzłów (nodes), na których uruchamiane są kontenery Docker (lub inne runtime zgodne z OCI). Nazwa pochodzi z greki i oznacza 'sternik'.
Czym różni się Kubernetes od Docker?
Docker to technologia konteneryzacji — pakuje aplikację z jej zależnościami w przenośny kontener. Kubernetes to orkiestrator kontenerów — zarządza wieloma kontenerami na wielu maszynach. Docker Compose to narzędzie do uruchamiania wielu kontenerów na jednej maszynie (dev/staging). Kubernetes to produkcyjna platforma: automatyczne skalowanie, self-healing (restartuje padające pody), load balancing, rolling updates, secrets management.
Co to jest Pod w Kubernetes?
Pod to najmniejsza jednostka wdrożeniowa w Kubernetes — grupa jednego lub kilku kontenerów współdzielących sieć (localhost między sobą) i storage (volumes). Kontenery w jednym Podzie zawsze uruchamiane są razem na tym samym węźle. Większość Podów zawiera jeden kontener (main container) + opcjonalne init containers i sidecar containers (np. do zbierania logów). Pody są ephemeral — Kubernetes je niszczy i tworzy nowe (nigdy nie naprawia istniejącego Poda).
Jak Kubernetes realizuje automatyczne skalowanie?
Kubernetes oferuje 3 typy autoskalowania: HPA (Horizontal Pod Autoscaler) — zwiększa/zmniejsza liczbę Podów na podstawie CPU/memory lub custom metrics (np. requests per second); VPA (Vertical Pod Autoscaler) — dostosowuje limity CPU/memory poszczególnych Podów; Cluster Autoscaler — dodaje lub usuwa węzły (nodes) klastra w zależności od zapotrzebowania. HPA jest najczęściej używany: kubectl autoscale deployment my-app --cpu-percent=50 --min=2 --max=20.
Jakie są zarządzane usługi Kubernetes?
Główne managed Kubernetes services: GKE (Google Kubernetes Engine) — najpojrzejszy, pełna integracja z Google Cloud; EKS (Amazon Elastic Kubernetes Service) — AWS, popularne w enterprise; AKS (Azure Kubernetes Service) — Microsoft Azure, dobre z Active Directory; DigitalOcean Kubernetes — prosty, tani, dla mniejszych projektów; Rancher — zarządzanie multi-cluster on-premise i cloud. Managed K8s eliminuje zarządzanie control plane (API server, etcd, scheduler).
Powiązane artykuły
Skontaktuj się z nami
Porozmawiajmy o Twoim projekcie. Bezpłatna wycena w ciągu 24 godzin.
Wyślij zapytanie
Telefon
+48 790 814 814
Pon-Pt: 9:00 - 18:00
adam@fotz.pl
Odpowiadamy w ciągu 24h
Adres rejestrowy
Poznańska 117/11
62-023 Kamionki · obsługa zdalna

