Kubernetes Grundlagen
Was ist Kubernetes?
Kubernetes (K8s) ist eine Open-Source Container-Orchestrierungsplattform:
- Automatisiertes Deployment
- Skalierung
- Management containerisierter Anwendungen
- Entwickelt von Google (Borg-Nachfolger)
- Verwaltet von CNCF
Kubernetes Architektur
Control Plane
- kube-apiserver: API Gateway
- etcd: Key-Value Store
- kube-scheduler: Pod-Platzierung
- kube-controller-manager: Controller
Worker Nodes
- kubelet: Node Agent
- kube-proxy: Netzwerk-Proxy
- Container Runtime: containerd, CRI-O
Kern-Ressourcen
Pod
- Kleinste Einheit
- Ein oder mehrere Container
- Shared Network/Storage
- Ephemeral
ReplicaSet
- Gewünschte Anzahl Pods
- Self-Healing
- Pod Template
Deployment
- Deklarative Updates
- Rolling Updates
- Rollback-Fähigkeit
- Verwaltet ReplicaSets
Networking
Service Types
| Type | Beschreibung |
|---|---|
| ClusterIP | Intern im Cluster |
| NodePort | Port auf jedem Node |
| LoadBalancer | Externer Load Balancer |
| ExternalName | DNS CNAME |
Ingress
- HTTP/HTTPS Routing
- Host-basiert
- Path-basiert
- TLS-Terminierung
Konfiguration
ConfigMaps
- Nicht-sensitive Konfiguration
- Key-Value Paare
- Als Env Vars oder Volumes
Secrets
- Sensitive Daten
- Base64-kodiert
- Verschlüsselung at Rest
Storage
Volumes
- emptyDir: Temporär
- hostPath: Node-Pfad
- persistentVolumeClaim: Persistenter Storage
PersistentVolume (PV)
- Storage-Ressource
- Lifecycle unabhängig von Pod
PersistentVolumeClaim (PVC)
- Storage-Anforderung
- Bindet an PV
Namespaces
- Logische Trennung
- Resource Quotas
- Network Policies
- Multi-Tenancy
Wichtige kubectl Befehle
kubectl get pods
kubectl describe deployment
kubectl logs <pod>
kubectl apply -f manifest.yaml
kubectl scale deployment --replicas=5
kubectl rollout status deployment
CFTools Software implementiert Kubernetes-Lösungen für Unternehmen.