Python-Anwendungen mit Docker und Kubernetes bereitstellen
Python-Anwendungen mit Docker und Kubernetes bereitstellen
Ein praxisorientierter Leitfaden zur Containerisierung, Automatisierung und Skalierung von Python-Projekten
Inhaltsverzeichnis
Kapitel 1: Warum Container?
- Was ist Containerisierung und warum ist sie nützlich?
- Vergleich: virtuelle Maschinen vs. Container
- Vorteile für Python-Entwicklung und Deployment
- Überblick über Docker und Kubernetes
Kapitel 2: Einstieg in Docker
- Installation und erste Befehle
- Images vs. Container
- Dockerfile verstehen: Aufbau und Best Practices
- Mini-Projekt: Container für ein einfaches Python-Skript erstellen
Kapitel 3: Python-Anwendungen mit Docker bauen
- Python-Projekt containerisieren
- Abhängigkeiten mit requirements.txt
- Persistente Daten und Volumes
- Mini-Projekt: Flask-Webanwendung in einem Docker-Container
Kapitel 4: Multi-Container-Apps mit docker-compose
- Warum docker-compose?
- YAML-Datei definieren: Dienste, Netzwerke, Volumes
- Mini-Projekt: Python-App mit Redis oder PostgreSQL verbinden
Kapitel 5: Einstieg in Kubernetes (K8s)
- Grundkonzepte: Pods, Deployments, Services, Namespaces
- K8s-Architektur: Cluster, Nodes, API-Server
- kubectl und lokale K8s-Umgebungen (Minikube, Kind)
- Mini-Projekt: Erstes Deployment eines Python-Containers
Kapitel 6: Kubernetes-Konfigurationen erstellen
- YAML-Dateien für Deployment, Service, Ingress
- Umgebungsvariablen, Secrets und ConfigMaps
- Mini-Projekt: Skalierbare API mit mehreren Pods konfigurieren
Kapitel 7: Kommunikation und Skalierung
- Interne und externe Services
- Horizontal Scaling und Load Balancing
- Liveness und Readiness Probes
- Mini-Projekt: Hochverfügbare Flask-API mit Auto-Scaling
Kapitel 8: Logging, Monitoring und Debugging
- Logs von Pods lesen (kubectl logs)
- Metriken erfassen mit Prometheus + Grafana
- Troubleshooting bei fehlschlagenden Deployments
- Mini-Projekt: Monitoring für Python-App einrichten
Kapitel 9: Continuous Deployment und GitOps
- CI/CD mit GitHub Actions und Docker Hub
- Kubernetes-Deployments automatisieren
- Einführung in GitOps-Tools wie ArgoCD oder Flux
- Mini-Projekt: Automatisches Deployment bei Git-Push
Kapitel 10: Python + Docker + Kubernetes in der Produktion
- Sicherheitsaspekte (Least Privilege, Secrets)
- Ressourcenlimits und Requests
- Strategien für Blue-Green oder Canary-Deployments
- Mini-Projekt: Produktionspipeline für eine Python-App
Anhang A: Wichtige Docker- und Kubernetes-Kommandos
- docker build, run, exec, compose up, kubectl get, apply, logs, etc.
Anhang B: Beispiel-Dockerfile und K8s-YAML-Vorlagen
- Für Web-Apps, Skripte, Worker-Prozesse
Anhang C: Übungsaufgaben mit Lösungen
- Dockerfile optimieren
- Kubernetes Deployment + Service kombinieren
- CI/CD-Workflow mit Container-Build + K8s-Push
- Lösungen mit Kommentaren und Erklärung