Uživatelské nástroje

Nástroje pro tento web


it:sw:kubernetes

Kubernetes (K8s)

Kubernetes je de facto standardem pro provozování aplikací v cloudu. Umožňuje automatizovat nasazování, škálování a správu kontejnerizovaných aplikací napříč clusterem serverů.

1. Architektura Clusteru

Kubernetes cluster se skládá ze dvou hlavních částí: Control Plane (mozek) a Worker Nodes (výkonné jednotky).

  • Control Plane:
    • API Server: Vstupní brána pro veškerou komunikaci (příkazy z kubectl).
    • etcd: Distribuovaná databáze (klíč-hodnota), která uchovává stav celého clusteru.
    • Scheduler: Rozhoduje, na který uzel (node) bude umístěn nový kontejner.
  • Worker Nodes:
    • Kubelet: Agent, který dohlíží na to, aby kontejnery na daném uzlu běžely.
    • Kube-proxy: Stará se o síťovou komunikaci a load balancing.

2. Základní objekty (Abstrakce)

Kubernetes nepracuje přímo s kontejnery, ale s vyššími objekty:

  • Pod: Nejmenší jednotka v K8s. Může obsahovat jeden nebo více kontejnerů, které sdílejí síť a úložiště.
  • Deployment: Definuje požadovaný stav (např. „chci, aby vždy běžely 3 kopie tohoto Podu“). Pokud jeden Pod spadne, Deployment zajistí jeho znovuspuštění.
  • Service: Zajišťuje stabilní IP adresu a DNS název pro skupinu Podů (řeší load balancing).
  • Ingress: Pravidla pro přístup k aplikacím z vnějšího internetu (HTTP/HTTPS směrování).

3. Klíčové vlastnosti (Proč K8s?)

  • Self-healing (Samooprava): Pokud uzel selže, Kubernetes okamžitě přesune kontejnery na jiný funkční uzel.
  • Horizontální škálování: Automaticky zvyšuje nebo snižuje počet běžících kopií aplikace podle vytížení CPU nebo RAM.
  • Automated Rollouts/Rollbacks: Umožňuje nasadit novou verzi aplikace bez výpadku. Pokud se objeví chyba, lze se jedním příkazem vrátit k předchozí verzi.
  • Service Discovery: Podů se nemusí ptát na IP adresy ostatních služeb; vše je automaticky propojeno skrze DNS jména.

4. Deklarativní konfigurace (YAML)

V Kubernetes neříkáte systému „udělej toto“, ale definujete cílový stav pomocí YAML souborů. Kubernetes se pak neustále snaží, aby realita odpovídala této definici.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webova-aplikace
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: nginx
        image: nginx:1.21

5. Ekosystém a nástroje

Nástroj Účel
kubectl CLI nástroj pro ovládání clusteru z příkazové řádky.
Helm „Správce balíčků“ pro Kubernetes (umožňuje instalovat složité aplikace jedním příkazem).
Minikube Nástroj pro spuštění lokálního jednodevítkového clusteru pro účely vývoje.
Lens Grafické rozhraní (IDE) pro vizuální správu clusteru.

Související články:

Tagy: it kubernetes k8s cloud-native devops containers orchestration

it/sw/kubernetes.txt · Poslední úprava: autor: admin