24.3.26
17.3.26
Ohne Titel
4.3.2026
3.3.26
Kubernetes PostgreSQL – Streaming, Ablage und Import
Technische Referenz & Betriebsdokumentation
1. Ziel dieser Dokumentation
Dieses Dokument beschreibt:
- Zugriff auf PostgreSQL-Pods in Kubernetes
- Ablage großer SQL-Dateien im Persistent Volume (PV)
- Streaming von Git-Repositories ohne lokale Speicherung
- Sicheren und kontrollierten SQL-Import
- Umgang mit Kubernetes Secrets
- Risiken und empfohlene Vorgehensweisen
2. Platzhalter-Konvention
In allen Beispielen werden folgende Platzhalter verwendet:
<namespace>
<pod>
<secret>
<database>
<user>
<repo-url>
<commit>
<ordner>
<datei>
<key>
Diese sind projektspezifisch zu ersetzen.
3. Architekturüberblick
PostgreSQL speichert Daten im Persistent Volume unter:
/bitnami/postgresql
Wichtige Unterscheidung
| Pfad | Bedeutung |
|---|---|
/opt/bitnami | Container-Software |
/bitnami/postgresql | Daten (Persistent Volume) |
/tmp | Temporär, nicht persistent |
Ablage-Ordner für Import-Dateien:
/bitnami/postgresql/<ordner>
4. Kubernetes – Grundbefehle
Alle Pods anzeigen
kubectl get pods -A
Pods in einem Namespace anzeigen
kubectl get pods -n <namespace>
Befehl in Pod ausführen
kubectl exec -n <namespace> <pod> -- <command>
Interaktive Shell starten
kubectl exec -it -n <namespace> <pod> -- sh
5. Persistent Volume prüfen
Speicherplatz prüfen
kubectl exec -n <namespace> <pod> -- df -h /bitnami/postgresql
Ordnerinhalt anzeigen
kubectl exec -n <namespace> <pod> -- ls -lh /bitnami/postgresql/<ordner>
Anzahl Dateien zählen
kubectl exec -n <namespace> <pod> -- \
sh -lc 'ls -1 /bitnami/postgresql/<ordner> | wc -l'
6. Streaming – Einzelne Datei ins PV speichern (ohne Ausführung)
curl -L "<raw-file-url>" \
| kubectl exec -i -n <namespace> <pod> -- \
sh -lc 'cat > /bitnami/postgresql/<ordner>/<datei>.sql'
Eigenschaften:
- Kein lokales Speichern
- Kein Ausführen
- Reine Dateiablage im PV
7. Komplettes Repository direkt ins PV streamen
Repository als tar.gz streamen und entpacken
curl -L "<repo-url>/-/archive/<commit>/<project>-<commit>.tar.gz" \
| kubectl exec -i -n <namespace> <pod> -- \
sh -lc 'mkdir -p /bitnami/postgresql/<ordner> && \
cd /bitnami/postgresql/<ordner> && \
tar xz --strip-components=1'
Erklärung
curllädt Archiv- Stream wird direkt an Pod weitergereicht
tar xzentpackt im PV--strip-components=1entfernt obersten Archiv-Ordner
Vorteile
- Kein Speicherverbrauch auf Managementserver
- Reproduzierbarer Stand durch Commit
- Kein temporäres Ablegen
8. Kubernetes Secrets – Passwort abrufen
Secrets anzeigen
kubectl get secret -n <namespace>
Passwort dekodieren
kubectl get secret -n <namespace> <secret> \
-o jsonpath="{.data.<key>}" | base64 -d; echo
Typische Keys:
postgres-passwordpassword
9. SQL-Import – Einzeldatei
kubectl exec -i -n <namespace> <pod> -- \
psql -U <user> -d <database> \
-f /bitnami/postgresql/<ordner>/<datei>.sql
Wichtig:
- Datei wird ausgeführt
- Änderungen sind persistent
- Autocommit ist Standard
10. Batch-Import – Kontrollierte Ausführung
kubectl exec -it -n <namespace> <pod> -- sh -lc '
for f in /bitnami/postgresql/<ordner>/*.sql; do
echo "RUN $f"
psql -U <user> -d <database> \
-v ON_ERROR_STOP=1 \
-f "$f" || exit 1
done'
Eigenschaften:
- Klare Reihenfolge
- Stoppt bei Fehler
- Keine stille Fehlerfortsetzung
11. Wichtige Shell-Operatoren
| Operator | Bedeutung |
|---|---|
; | Immer nächsten Befehl ausführen |
&& | Nur bei Erfolg fortfahren |
> | Datei überschreiben |
>> | Datei anhängen |
$() | Befehl ausführen und Ergebnis einsetzen |
sh -lc | Mehrere Befehle im Pod ausführen |
12. Risiken & Sicherheitsaspekte
Autocommit-Verhalten
Wenn SQL-Dateien kein BEGIN; ... COMMIT; enthalten,
werden INSERT, DROP, TRUNCATE sofort wirksam.
Destruktive Befehle erkennen
Vor Ausführung prüfen:
grep -RInE "^\s*(DROP|TRUNCATE)\b" <ordner>
Empfohlene Reihenfolge
- Struktur-Dateien
- Daten-Dateien
- Views / Indizes / Constraints
Empfehlung
Vor großen Imports:
- Backup erstellen
- Import in Testumgebung prüfen
- Mit
ON_ERROR_STOP=1arbeiten
13. Best Practices
- Commit-Hash statt Branch verwenden
- Import-Ordner datiert benennen
- Dateien erst speichern, dann ausführen
- Speicherplatz vorab prüfen
- Große Datenmengen niemals über Managementserver speichern
- Batch-Import niemals ohne Fehlerstopp
14. Betriebszustand nach erfolgreichem Streaming
Erfolgsmerkmale
- Dateien liegen vollständig im PV
df -hzeigt erwartete Belegung- Keine laufenden
tar-Prozesse - Keine Fehlermeldungen beim Entpacken
15. Fazit
Das beschriebene Verfahren ermöglicht:
- Reproduzierbare Datenübernahme
- Speicherneutrales Streaming
- Saubere Trennung zwischen Ablage und Ausführung
- Sicheren produktiven Betrieb
Fasten-Brokkolicremesuppe
Portionen: 2 oder 3 kleine
Zubereitungszeit: ca. 40–45 Minuten
Kalorien: ca. 110–115 kcal pro Portion

Zutaten
- 1 Brokkoli (ca. 500 g)
- 1 kleine Möhre
- 40 g Sellerie
- untere weiße Hälfte einer Lauchstange
- 1 Zwiebel
- 2 Knoblauchzehen
- 1 Stängel Petersilie
- 1 Lorbeerblatt
- ca. 750 ml Wasser
- 10 g Butter
- 1 Prise Salz
- etwas schwarzer Pfeffer
- 1 Limette
- optional: 1 Prise Muskat
Zubereitung
- Brokkoli in Röschen teilen. Den Strunk schälen, grob würfeln und beiseitelegen.
- Zwiebel, Möhre und Sellerie in daumengroße Stücke schneiden und in der Butter bei mittlerer Hitze leicht anschwitzen.
- Brokkolistrunk und den längs halbierten, gründlich gewaschenen Lauch zugeben. Mit Wasser aufgießen, bis alles bedeckt ist.
- Eine Knoblauchzehe in Scheiben schneiden und zusammen mit Petersilie und Lorbeerblatt in den Topf geben. Leicht salzen und pfeffern.
- Die Brühe etwa 25 Minuten sanft köcheln lassen.
- Brühe durch ein Sieb gießen und das Lorbeerblatt entfernen.
- Brokkoliröschen sowie die zweite fein gehackte Knoblauchzehe in die Brühe geben.
- Aus dem Sieb etwa die Hälfte der Möhrenstücke sowie etwas Lauch, Sellerie und Strunk zurück in die Brühe geben.
- Weitere 12–15 Minuten sanft garen.
- Alles mindestens 1 Minute sehr fein pürieren, bis eine cremige Konsistenz entsteht.
- Mit Limettensaft, Pfeffer und optional Muskat abschmecken. Mit fein gehackter Petersilie bestreuen und servieren.
Tipp
- Je weniger Flüssigkeit am Ende im Topf ist, desto cremiger wird die Suppe.
- Ein Limettenviertel auf dem Teller unterstreicht die frische, leichte Note.
- Wird die Suppe zu dick, esslöffelweise heißes Wasser zugeben.
26.6.26
## Fastentomatenchremesuppe
* Portion: 2
* Zeit: 60-70 Minuten
* Kalorien je Portion: ca. 210j

## Zutaten
* [ ] 2 Möhren
* [ ] 75 g Sellerie
* [ ] 3 größere Tomaten
* [ ] die obere Hälfte einer Lauchstange
* [ ] 1 Zwiebel
* [ ] 2 Knoblauchzehen
* [ ] 1 Stengel Petersilie
* [ ] ca. 500ml Wasser
* [ ] Oregano, Thymian, Basilikum
* [ ] eine Prise Salz, etwas Pfeffer
* [ ] Limette, evtl. etwas Honig
## Kochen
* Zwiebeln und eine Knoblauchzehe in Scheiben Schneiden und in 15ml Olivenöl leicht rösten
* Lauch zerkleinern, waschen und hinzugebn, mit Wasser vorsichtig aufgießen bis alles bedeckt ist
* Salz, Pfeffer, Thymian und Oregano dazugeben
* Die Schale der Tomaten anritzen und über der kochenden Brühe in einem Sieb mitdünsten.
* Die Brühe nach 30 min durch ein Sieb gießen
* eine Knoblauchzehe klein schneiden, Tomaten schälen und zur Brühe geben
* Mit dem Basilikum noch 15 Minuten leicht köcheln
* 1 min Pürieren
* servieren
## Tipp
Suppe je nach Geschmack mit Limette und Honig abschmecken
