Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:postgresql_mit_zalando_bereitstellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:postgresql_mit_zalando_bereitstellen [2024/03/19 11:13] – [Postgres bereitstellen] markoit-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 Operator in Kubernetes bereitstellen ======
 In dieser Anleitung erfahren Sie, wie Sie mit dem [[https://github.com/zalando/postgres-operator|Zalando Postgres-Operator]] Postgres-Cluster in bereitstellen. In dieser Anleitung erfahren Sie, wie Sie mit dem [[https://github.com/zalando/postgres-operator|Zalando Postgres-Operator]] Postgres-Cluster in bereitstellen.
  
Zeile 233: Zeile 233:
 ===== Authentifizierungsbeispiel: Verbindung zu Postgres herstellen ===== ===== Authentifizierungsbeispiel: Verbindung zu Postgres herstellen =====
 In diesem Abschnitt erfahren Sie, wie Sie einen Postgres-Beispielclient bereitstellen und mit dem Passwort aus einem Kubernetes-Secret eine Verbindung zur Datenbank herstellen. 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: <code bash>kubectl apply -n postgres -f manifests/02-auth/client-pod.yaml</code> Die Anmeldedaten der Nutzer myuser und mydatabaseowner werden aus den zugehörigen Secrets übernommen und als Umgebungsvariablen im Pod bereitgestellt.
 +  - Stellen Sie eine Verbindung zum Pod her, wenn er bereit ist: <code bash>kubectl wait pod postgres-client --for=condition=Ready --timeout=300s -n postgres
 +kubectl exec -it postgres-client -n postgres -- /bin/bash</code>
 +  - Stellen Sie eine Verbindung zu Postgres her und versuchen Sie, eine neue Tabelle mit den myuser-Anmeldedaten zu erstellen: <code bash>PGPASSWORD=$CLIENTPASSWORD psql \
 +  -h my-cluster \
 +  -U $CLIENTUSERNAME \
 +  -d mydatabase \
 +  -c "CREATE TABLE test (id serial PRIMARY KEY, randomdata VARCHAR ( 50 ) NOT NULL);"</code> Der Befehl sollte mit einem Fehler wie diesem fehlschlagen: <code bash>ERROR:  permission denied for schema public
 +LINE 1: CREATE TABLE test (id serial PRIMARY KEY, randomdata VARCHAR...</code> Der Befehl schlägt fehl, da sich Nutzer ohne zugewiesene Berechtigungen standardmäßig nur bei Postgres anmelden und Datenbanken auflisten können.
 +  - Erstellen Sie eine Tabelle mit ''mydatabaseowner''-Anmeldedaten und gewähren Sie ''myuser'' **alle** Berechtigungen für die Tabelle: <code bash>PGPASSWORD=$OWNERPASSWORD psql \
 +  -h my-cluster \
 +  -U $OWNERUSERNAME \
 +  -d mydatabase \
 +  -c "CREATE TABLE test (id serial PRIMARY KEY, randomdata VARCHAR ( 50 ) NOT NULL);GRANT ALL ON test TO myuser;GRANT ALL ON SEQUENCE test_id_seq TO myuser;" </code> Die Ausgabe sieht in etwa so aus: <code bash>CREATE TABLE
 +GRANT
 +GRANT </code>
 +  - 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 </dev/urandom | head -c 13)
 +  PGPASSWORD=$CLIENTPASSWORD psql \
 +  -h my-cluster \
 +  -U $CLIENTUSERNAME \
 +  -d mydatabase \
 +  -c "INSERT INTO test(randomdata) VALUES ('$DATA');"
 +done</code> Die Ausgabe sieht in etwa so aus: <code bash>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
 +INSERT 0 1</code>
 +  - Rufen Sie die eingefügten Werte ab: <code bash>PGPASSWORD=$CLIENTPASSWORD psql \
 +  -h my-cluster \
 +  -U $CLIENTUSERNAME \
 +  -d mydatabase \
 +  -c "SELECT * FROM test;"</code> Die Ausgabe sieht in etwa so aus: <code bash>id |  randomdata
 +----+---------------
 +  1 | jup9HYsAjwtW4
 +  2 | 9rLAyBlcpLgNT
 +  3 | wcXSqxb5Yz75g
 +  4 | KoDRSrx3muD6T
 +  5 | b9atC7RPai7En
 +  6 | 20d7kC8E6Vt1V
 +  7 | GmgNxaWbkevGq
 +  8 | BkTwFWH6hWC7r
 +  9 | nkLXHclkaqkqy
 + 10 | HEebZ9Lp71Nm3
 +(10 rows)</code>
 +  - Beenden Sie die Pod-Shell: <code bash>exit</code>
it-wiki/kubernetes/postgresql_mit_zalando_bereitstellen.1710846808.txt.gz · Zuletzt geändert: 2024/03/19 11:13 von marko