🎯 Definicja
Kubernetes (K8s) to system orkiestracji kontenerów open-source, który automatyzuje wdrażanie, skalowanie i zarządzanie aplikacjami kontenerowymi (konteneryzowanymi). Kubernetes decyduje gdzie uruchomić kontenery, restartuje je przy awarii i skaluje w górę/dół zgodnie z obciążeniem.
🔑 Kluczowe punkty
- Pod: najmniejsza jednostka — jeden lub kilka powiązanych kontenerów
- Node: fizyczna/wirtualna maszyna w klastrze
- Cluster: zbiór node’ów zarządzanych przez K8s
- Deployment: deklaratywny opis pożądanego stanu aplikacji
- Service: stały endpoint sieciowy do grupy podów
- Helm: menedżer pakietów dla K8s (jak apt/brew dla K8s)
- Ataccama ONE na produkcji wdraża się przez Helm charts na K8s
📚 Szczegółowe wyjaśnienie
Architektura klastra
┌─────────────────────────────┐
│ Control Plane │
│ API Server | etcd | Scheduler│
└──────────────┬───────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ Node 1 │ │ Node 2 │ │ Node 3 │
│ Pod A │ │ Pod B │ │ Pod C │
│ Pod B │ │ Pod D │ │ Pod A │
└────────┘ └────────┘ └────────┘
Kluczowe obiekty
# Deployment — 3 repliki aplikacji
apiVersion: apps/v1
kind: Deployment
metadata:
name: ataccama-web
spec:
replicas: 3
selector:
matchLabels:
app: ataccama-web
template:
spec:
containers:
- name: web
image: ataccama/one:14.0
resources:
requests:
memory: "2Gi"
cpu: "500m"
limits:
memory: "4Gi"
cpu: "2000m"kubectl — kluczowe komendy
kubectl get pods # lista podów
kubectl describe pod <name> # szczegóły poda
kubectl logs <pod-name> # logi
kubectl exec -it <pod> -- bash # wejście do poda
kubectl apply -f deployment.yaml # zastosowanie manifestu
kubectl scale deployment/app --replicas=5 # skalowanieHelm — instalacja Ataccamy
helm repo add ataccama https://charts.ataccama.com
helm install ataccama-one ataccama/one \
--namespace ataccama \
--values my-values.yaml💡 Przykład zastosowania
Ataccama w chmurze klienta: klient instaluje Ataccama ONE na AWS EKS (Elastic Kubernetes Service). Helm chart definiuje wszystkie komponenty (DPE, web aplikacja, Keycloak, PostgreSQL). K8s restartuje automatycznie pody które się zawiesiły i skaluje DPE w górę gdy rosnie wolumen danych do przetworzenia.
📌 Źródła
- Docker
- DevOps
- Self-Managed Deployment (Ataccama)
- Ataccama Infrastructure Environment - Cloud-Managed Databases
- CD