it-wiki:kubernetes:postgresql_mit_zalando_bereitstellen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
it-wiki:kubernetes:postgresql_mit_zalando_bereitstellen [2024/03/19 10:47] – [Einfachen Postgres-Cluster erstellen] marko | it-wiki:kubernetes:postgresql_mit_zalando_bereitstellen [2024/04/25 05:31] (aktuell) – marko | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== PostgreSQL mit Zalando in Kubernetes bereitstellen ====== | + | ====== PostgreSQL mit Zalando |
In dieser Anleitung erfahren Sie, wie Sie mit dem [[https:// | In dieser Anleitung erfahren Sie, wie Sie mit dem [[https:// | ||
Zeile 135: | Zeile 135: | ||
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
* '' | * '' | ||
Zeile 173: | Zeile 173: | ||
Der Operator erstellt die folgenden Ressourcen: | Der Operator erstellt die folgenden Ressourcen: | ||
+ | * Ein Postgres-StatefulSet, | ||
+ | * Einen '' | ||
+ | * Den '' | ||
+ | * Den '' | ||
+ | * Den monitorlosen Dienst '' | ||
+ | * Secrets mit Nutzeranmeldedaten für den Zugriff auf die Datenbank und die Replikation zwischen Postgres-Knoten | ||
+ | |||
+ | ===== Bei Postgres authentifizieren ===== | ||
+ | Sie können Postgres-Nutzer erstellen und ihnen Datenbankberechtigungen zuweisen. Das folgende Manifest beschreibt beispielsweise eine benutzerdefinierte Ressource, die Nutzer und Rollen zuweist: | ||
+ | <code yaml> | ||
+ | apiVersion: " | ||
+ | kind: postgresql | ||
+ | metadata: | ||
+ | name: my-cluster | ||
+ | spec: | ||
+ | ... | ||
+ | users: | ||
+ | mydatabaseowner: | ||
+ | - superuser | ||
+ | - createdb | ||
+ | myuser: [] | ||
+ | databases: | ||
+ | mydatabase: mydatabaseowner | ||
+ | </ | ||
+ | |||
+ | In diesem Manifest: | ||
+ | * Der '' | ||
+ | * Dem Nutzer '' | ||
+ | |||
+ | ===== Passwörter speichern ===== | ||
+ | Verwenden Sie die [[https:// | ||
+ | <code yaml> | ||
+ | apiVersion: " | ||
+ | kind: postgresql | ||
+ | metadata: | ||
+ | name: my-cluster | ||
+ | spec: | ||
+ | ... | ||
+ | postgresql: | ||
+ | parameters: | ||
+ | password_encryption: | ||
+ | </ | ||
+ | |||
+ | ===== Nutzeranmeldedaten rotieren ===== | ||
+ | Sie können [[https:// | ||
+ | <code yaml> | ||
+ | apiVersion: " | ||
+ | kind: postgresql | ||
+ | metadata: | ||
+ | name: my-cluster | ||
+ | spec: | ||
+ | ... | ||
+ | usersWithSecretRotation: | ||
+ | - myuser | ||
+ | - myanotheruser | ||
+ | - ... | ||
+ | </ | ||
+ | |||
+ | ===== Authentifizierungsbeispiel: | ||
+ | In diesem Abschnitt erfahren Sie, wie Sie einen Postgres-Beispielclient bereitstellen und mit dem Passwort aus einem Kubernetes-Secret eine Verbindung zur Datenbank herstellen. | ||
+ | - Führen Sie den Client-Pod aus, um mit Ihrem Postgres-Cluster zu interagieren: | ||
+ | - Stellen Sie eine Verbindung zum Pod her, wenn er bereit ist: <code bash> | ||
+ | kubectl exec -it postgres-client -n postgres -- / | ||
+ | - Stellen Sie eine Verbindung zu Postgres her und versuchen Sie, eine neue Tabelle mit den myuser-Anmeldedaten zu erstellen: <code bash> | ||
+ | -h my-cluster \ | ||
+ | -U $CLIENTUSERNAME \ | ||
+ | -d mydatabase \ | ||
+ | -c " | ||
+ | LINE 1: CREATE TABLE test (id serial PRIMARY KEY, randomdata VARCHAR...</ | ||
+ | - Erstellen Sie eine Tabelle mit '' | ||
+ | -h my-cluster \ | ||
+ | -U $OWNERUSERNAME \ | ||
+ | -d mydatabase \ | ||
+ | -c " | ||
+ | GRANT | ||
+ | GRANT </ | ||
+ | - Fügen Sie zufällige Daten mit den Anmeldedaten myuser in die Tabelle ein: <code bash>for i in {1..10}; do | ||
+ | DATA=$(tr -dc A-Za-z0-9 </ | ||
+ | PGPASSWORD=$CLIENTPASSWORD psql \ | ||
+ | -h my-cluster \ | ||
+ | -U $CLIENTUSERNAME \ | ||
+ | -d mydatabase \ | ||
+ | -c " | ||
+ | done</ | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1 | ||
+ | INSERT 0 1</ | ||
+ | - Rufen Sie die eingefügten Werte ab: <code bash> | ||
+ | -h my-cluster \ | ||
+ | -U $CLIENTUSERNAME \ | ||
+ | -d mydatabase \ | ||
+ | -c " | ||
+ | ----+--------------- | ||
+ | 1 | jup9HYsAjwtW4 | ||
+ | 2 | 9rLAyBlcpLgNT | ||
+ | 3 | wcXSqxb5Yz75g | ||
+ | 4 | KoDRSrx3muD6T | ||
+ | 5 | b9atC7RPai7En | ||
+ | 6 | 20d7kC8E6Vt1V | ||
+ | 7 | GmgNxaWbkevGq | ||
+ | 8 | BkTwFWH6hWC7r | ||
+ | 9 | nkLXHclkaqkqy | ||
+ | 10 | HEebZ9Lp71Nm3 | ||
+ | (10 rows)</ | ||
+ | - Beenden Sie die Pod-Shell: <code bash> |
it-wiki/kubernetes/postgresql_mit_zalando_bereitstellen.1710845259.txt.gz · Zuletzt geändert: 2024/03/19 10:47 von marko