🟡 Intermediate

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 podov
  • kubectl apply -f deployment.yaml — aplikuje konfiguráciu
  • kubectl logs <pod> — logy
  • kubectl scale deployment web-app --replicas=5 — škálovanie

Kubernetes je štandard pre produkčné nasadenie kontajnerov a je jadrom cloud-native ekosystému.