it:sw:kubernetes
Obsah
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
