Kubernetes & kontejnery
K8s pro produkci. Ne pro demo.
Managed Kubernetes s GitOps, progressive delivery a production-grade observability. Od dev po produkci s konzistentní konfigurací.
Kdy Kubernetes a kdy ne¶
K8s je mocný nástroj, ale přináší komplexitu. Rozhodovací matice:
| Scénář | K8s | Alternativa |
|---|---|---|
| 1-3 služby, jednoduchý stack | ❌ | App Service, ECS, Cloud Run |
| 5+ microservices | ✅ | — |
| Multi-cloud požadavek | ✅ | — |
| Advanced scheduling (GPU, spot) | ✅ | — |
| Service mesh potřeba | ✅ | — |
| Malý tým bez K8s zkušeností | ❌ | Start jednodušeji |
Production-Ready Kubernetes¶
Cluster v produkci potřebuje víc než kubectl apply:
Networking: - Ingress controller (nginx nebo Traefik) s TLS termination - Network Policies pro pod-to-pod izolaci - Service mesh (Istio/Linkerd) pro mTLS a traffic management - DNS (ExternalDNS pro automatickou DNS registraci)
Security: - RBAC — least privilege pro uživatele i service accounts - Pod Security Standards (restricted, baseline) - Image scanning (Trivy) v CI pipeline - Runtime security (Falco) pro detekci anomálií - Secret management (External Secrets Operator → Vault/Key Vault)
Observability: - Metrics: Prometheus + Grafana (kube-prometheus-stack) - Logs: Loki nebo Elasticsearch - Traces: Jaeger nebo Tempo - Dashboards: cluster health, per-namespace, per-deployment
Autoscaling: - HPA (Horizontal Pod Autoscaler) na CPU/memory/custom metriky - VPA (Vertical Pod Autoscaler) pro right-sizing - Cluster Autoscaler / Karpenter pro node scaling - KEDA pro event-driven scaling (Kafka lag, queue depth)
GitOps s ArgoCD¶
Deklarativní deployment — desired state v gitu, ArgoCD synchronizuje:
- Developer pushne Helm chart / Kustomize overlay
- ArgoCD detekuje změnu
- Sync: cluster state → desired state
- Health check: deployment healthy?
- Drift detection: pokud někdo změní ručně, ArgoCD opraví
Self-healing cluster. Audit trail v git historii. Multi-cluster management z jedné ArgoCD instance.
Progressive Delivery¶
Argo Rollouts pro zero-risk deploys:
- Canary: 5% → analysis → 25% → 50% → 100%. Prometheus metriky (error rate, latence) rozhodují automaticky.
- Blue-Green: Instant switch s instant rollback.
- Analysis Templates: Definujte metriky a thresholdy. Rollout se automaticky zastaví při degradaci.
Časté otázky
Ne vždy. Pro jednoduchou aplikaci stačí App Service/ECS/Cloud Run. K8s dává smysl od 5+ služeb, při potřebě multi-cloud, custom scheduling, nebo advanced networking.
Managed (AKS/EKS/GKE) téměř vždy. Self-hosted K8s jen pro air-gapped prostředí. Managed eliminuje 80% operational overhead.
Namespace isolation, Network Policies, Resource Quotas, RBAC. Pro silnější izolaci: virtuální clustery (vCluster) nebo dedikované node pools.