Kubernetes — Orchestrácia kontajnerov
Kubernetes (K8s) je open-source platforma na automatizáciu nasadzovania, škálovania a správy kontajnerizovaných aplikácií. Vyvinul ho Google a dnes ho spravuje CNCF.
Prečo Kubernetes?
Keď máte desiatky alebo stovky kontajnerov, manuálna správa je nemožná. Kubernetes rieši:
- Automatické škálovanie — pridáva/odoberá inštancie podľa záťaže
- Self-healing — reštartuje padnuté kontajnery automaticky
- Load balancing — rozdeľuje prevádzku medzi inštancie
- Rolling updates — aktualizácie bez výpadku
Architektúra
Control Plane (master):
- API Server — centrálny bod komunikácie
- etcd — distribuované úložisko konfigurácie
- Scheduler — rozhoduje, kde sa spustia pody
- Controller Manager — udržiava želaný stav
Worker Nodes:
- kubelet — agent na každom node
- kube-proxy — sieťová komunikácia
- Container Runtime — Docker, containerd alebo CRI-O
Základné objekty
Pod — najmenšia nasaditeľná jednotka, obsahuje jeden alebo viac kontajnerov.
Deployment — deklaratívne definuje želaný stav aplikácie:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: nginx:alpine
ports:
- containerPort: 80
Service — sprístupňuje pody cez stabilnú IP adresu a DNS meno.
ConfigMap / Secret — externá konfigurácia a citlivé údaje.
Ingress — HTTP routing a TLS terminácia.
Distribúcie K8s
- Managed: EKS (AWS), GKE (Google), AKS (Azure)
- Lightweight: K3s, MicroK8s, Minikube
- On-premise: kubeadm, Rancher
Kubectl príkazy
kubectl get pods— zoznam podovkubectl apply -f deployment.yaml— aplikuje konfiguráciukubectl logs <pod>— logykubectl scale deployment web-app --replicas=5— škálovanie
Kubernetes je štandard pre produkčné nasadenie kontajnerov a je jadrom cloud-native ekosystému.