Kubernetes
Kubernetes (K8s)
Orkiestracja kontenerow na skale produkcyjna. Automatyczne skalowanie, self-healing i deklaratywne zarzadzanie infrastruktura kontenerowa.
Kubernetes to standard orkiestracji kontenerow w produkcji. Znajomosc K8s jest wymagana w wiekszosci ofert dla Senior Cloud Engineerow. EKS na AWS to jeden z najszybciej rosnacych serwisow.
Kubernetes (skrocone K8s) to system orkiestracji kontenerow stworzony przez Google i przekazany fundacji CNCF. Gdy masz dziesiatki lub setki kontenerow, potrzebujesz narzedzia, ktore automatycznie je rozmiesci, przeskaluje, zrestartuje po awarii i zbalansuje ruch sieciowy. Tym narzedziem jest Kubernetes.
Kubernetes nie zastepuje Dockera - uzupelnia go. Docker pakuje aplikacje w kontenery, a Kubernetes zarzadza nimi na klastrze serwerow. Definiujesz pozadany stan (np. "chce 3 repliki mojej aplikacji") i K8s dba o to, aby ten stan byl utrzymany.
Dla Cloud Engineera znajomosc Kubernetes to przepustka do najlepszych ofert pracy. AWS oferuje Amazon EKS - zarzadzany Kubernetes, ktory eliminuje zlozonosc utrzymania control plane. Ale zrozumienie podstaw K8s jest niezbedne, zeby efektywnie korzystac z EKS.
Kubernetes dziala w architekturze control plane - worker nodes. Control Plane podejmuje decyzje o klastrze, a Worker Nodes uruchamiaja kontenery.
Zdefiniuj pozadany stan
Napisz manifest YAML opisujacy Deployment, Service, Ingress. Deklarujesz CO chcesz, nie JAK to osiagnac.
API Server przyjmuje zadanie
kubectl wysyla manifest do API Servera. Dane sa zapisywane w etcd - rozproszonym key-value store klastra.
Scheduler rozmieszcza Pody
Scheduler analizuje dostepne zasoby na Node'ach i decyduje, gdzie uruchomic kazdy Pod.
Kubelet uruchamia kontenery
Na kazdym Node dziala kubelet, ktory pobiera obrazy i uruchamia kontenery przez container runtime (containerd).
Controller Manager pilnuje stanu
Kontrolery ciagle porownuja aktualny stan z pozadanym. Jesli Pod padnie, ReplicaSet Controller tworzy nowy.
Praktyczne porady dotyczace pracy z Kubernetes w srodowiskach produkcyjnych na AWS.
Zacznij od EKS
Nie stawiaj wlasnego control plane. Amazon EKS zarzadza master nodami, aktualizacjami i high availability. Ty skupiasz sie na workloadach.
PoczatkujacyUstawiaj resource requests i limits
Bez limitow jeden Pod moze zjesc wszystkie zasoby Node'a. Requests gwarantuja minimum, limits ograniczaja maksimum CPU i RAM.
PoczatkujacyUzywaj Helm do zarzadzania pakietami
Helm Charts pozwalaja instalowac zlozone aplikacje jednym poleceniem i parametryzowac konfiguracje miedzy srodowiskami.
ZaawansowanyWdrazaj GitOps z ArgoCD
ArgoCD synchronizuje stan klastra z repozytorium Git. Kazda zmiana przechodzi przez code review i jest audytowalna.
ZaawansowanyMonitoruj klaster od pierwszego dnia
Zainstaluj Prometheus + Grafana lub uzyj CloudWatch Container Insights. Bez monitoringu nie wiesz, co sie dzieje w klastrze.
PoczatkujacyDo czego sluzy Kubernetes?
Mikroserwisy na produkcji
Kazdy mikroserwis jako osobny Deployment z wlasnym skalowaniem, health checkami i rolling updates. Zero downtime przy wdrazaniu.
Auto-scaling aplikacji
Horizontal Pod Autoscaler automatycznie dodaje i usuwa repliki na podstawie CPU, pamieci lub custom metrics. Plac tylko za to, czego potrzebujesz.
Multi-tenant platformy
Namespaces izoluja zespoly i projekty na wspolnym klastrze. Resource quotas zapewniaja sprawiedliwy podzial zasobow.
Batch processing i cron jobs
Kubernetes Jobs i CronJobs uruchamiaja zadania wsadowe - przetwarzanie danych, generowanie raportow, ETL pipelines.
Co musisz wiedziec?
Pod
Najmniejsza jednostka w K8s. Jeden lub wiecej kontenerow dzielacych siec i storage. Zwykle jeden kontener na Pod.
Deployment
Deklaratywny sposob zarzadzania Podami. Definiujesz ile replik chcesz, jaki obraz i konfiguracje. K8s utrzymuje pozadany stan.
Service
Stabilny endpoint sieciowy dla grupy Podow. Load balancer wewnatrz klastra. Typy: ClusterIP, NodePort, LoadBalancer.
Namespace
Wirtualny klaster wewnatrz klastra. Izoluje zasoby miedzy zespolami, srodowiskami (dev/staging/prod) lub projektami.
Ingress
Zarzadzanie ruchem HTTP/HTTPS z zewnatrz klastra. Routing po domenach i sciezkach, terminacja SSL.
ConfigMap / Secret
Przechowywanie konfiguracji i tajnych danych oddzielnie od kodu. Uwaga: w vanilla Kubernetes Secrets sa tylko kodowane base64 - szyfrowanie at rest w etcd trzeba wlaczyc (EKS robi to domyslnie przez envelope encryption z AWS KMS).
Przyklady Kubernetes CLI
Wdrozenie aplikacji
Utworz Deployment z 3 replikami
kubectl create deployment web --image=nginx:1.25 --replicas=3
Eksponowanie serwisu
Utworz Service typu LoadBalancer
kubectl expose deployment web --port=80 --type=LoadBalancer
Skalowanie
Zmien liczbe replik w dzialajacym Deployment
kubectl scale deployment web --replicas=5
Sprawdzenie statusu
Podejrzyj Pody, Deploymenty i Serwisy
kubectl get pods -o wide
kubectl get deployments
kubectl get services
kubectl describe pod web-abc123
Jak Kubernetes dziala z AWS?
Amazon EKS to zarzadzany Kubernetes na AWS - eliminuje zlozonosc utrzymania control plane. EKS integruje sie z ALB Ingress Controller do routingu HTTP, IAM Roles for Service Accounts (IRSA) do bezpiecznego dostepu do uslug AWS, Amazon EBS CSI Driver do persistent storage i CloudWatch Container Insights do monitoringu.
Quiz: Kubernetes
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz - feedback pojawi sie od razu.
1. Co to jest Pod w Kubernetes?
2. Do czego sluzy Deployment?
3. Czym rozni sie Service typu ClusterIP od LoadBalancer?
Serwisy AWS powiazane z Kubernetes
Chcesz poznac Kubernetes w praktyce?
Kurs Kubernetes jest w przygotowaniu. Zapisz sie na newsletter, zeby nie przegapic premiery. W miedzyczasie sprawdz darmowy kurs "AWS od podstaw".