Blog

Bereitstellung von Zalando Postgres Operator und PostgreSQL Cluster auf OpenShift

06.01.2025
Lesezeit: 3 Minuten.
Zuletzt aktualisiert: 24.10.2025

Inhaltsübersicht

Der Einsatz eines PostgreSQL-Clusters auf OKD/OpenShift unter Verwendung des Zalando Postgres Operators ist eine leistungsstarke und skalierbare Lösung. Dieser Leitfaden bietet eine Schritt-für-Schritt-Anleitung für den Einsatz des Operators, die Konfiguration des Speichers mit StorageClass oder NFS und den effizienten Zugriff auf die PostgreSQL-Datenbank.

Bevor Sie fortfahren, vergewissern Sie sich, dass Sie alles haben:

  • Ein OKD/OpenShift-Cluster mit installiertem und konfiguriertem CLI (oc)
  • Helm auf Ihrem lokalen System installiert
  • Ein NFS-Server (wenn Sie NFS für die Speicherung verwenden)
git clone https://github.com/zalando/postgres-operator.git
helm repo add postgres-operator-charts 
https://opensource.zalando.com/postgres-operator/charts/postgres-operator
  • Erstellen Sie einen eigenen Namensraum:
oc create namespace zalando-operator
  • Installieren Sie den Operator mit Helm:
helm install postgres-operator postgres-operator-charts/postgres-

operator -n zalando-operator

OpenShift erzwingt Sicherheitseinschränkungen über SCC. Gewähren Sie dem Standard-Servicekonto die anyuid-SCC:

oc adm policy add-scc-to-user anyuid -z default -n zalando-operator

Prüfen Sie, ob die Operator-Pods in Betrieb sind:

oc get pods -l app=postgres-operator -n zalando-operator

Wenden Sie das minimale Manifest an, das im Zalando-Repository bereitgestellt wird:

oc apply -f manifests/minimal-postgres-manifest.yaml

Schritt 1: Erstellen eines persistenten Volumes (PV)

Speichern Sie die folgende PV-Definition in zalando-persistent-volume.yaml:

kind: PersistentVolume
metadata:
name: database-storage
annotations:
kubernetes.io/pv-protection: "true"
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
nfs:
path: /VM/NFS/postgresql
server: 10.124.0.4

Wenden Sie die PV-Konfiguration an:

oc apply -f zalando-persistent-volume.yaml

Schritt 2: Erstellen eines Persistent Volume Claim (PVC)

Speichern Sie die folgende PVC-Definition in zalando-persistent-volume-claim.yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pgdata-acid-cluster-avitech-0
namespace: zalando-cluster
labels:
application: spilo
cluster-name: acid-cluster-avitech
team: acid
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
volumeName: database-storage
volumeMode: Filesystem
storageClassName: ""

Wenden Sie die PVC-Konfiguration an:

oc apply -f zalando-persistent-volume-claim.yaml

Schritt 3: Erteilen Sie SCC für den PostgreSQL-Namensraum

Gewähren Sie dem Standard-Servicekonto im zalando-cluster-Namensraum den privilegierten SCC:

oc adm policy add-scc-to-user privileged -z default -n zalando-cluster

Speichern Sie die folgende Rollendefinition in zalando-role.yaml:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: zalando-role
  namespace: zalando-cluster
rules:
- apiGroups: [""]
  resources:
    - endpoints
    - endpoints/restricted
  verbs:
    - get
    - list
    - watch
    - create
    - update
    - delete

Die Rolle anwenden:

oc apply -f zalando-role.yaml

Speichern Sie die folgende RoleBinding-Definition in zalando-rolebinding.yaml:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: zalando-rolebinding
  namespace: zalando-cluster
subjects:
  - kind: ServiceAccount
    name: postgres-pod
    namespace: zalando-cluster
roleRef:
  kind: Role
  name: zalando-role
  apiGroup: rbac.authorization.k8s.io

Wenden Sie die RoleBinding an:

oc apply -f zalando-rolebinding.yaml

Überprüfen Sie, ob Ihr PostgreSQL-Cluster läuft:

oc get pods -l application=spilo -n zalando-cluster

1. rufen Sie die PostgreSQL-Zugangsdaten ab:

export PGPASSWORD=$(oc get secret postgres.acid-minimal-cluster.credentials.postgresql.acid.zalan.do -o 'jsonpath={.data.password}' | base64 -d)
export PGSSLMODE=require

2.Retrieve the cluster's service URL:
export HOST_PORT=$(oc get svc acid-minimal-cluster -o jsonpath='{.spec.clusterIP}:{.spec.ports[0].port}')
export PGHOST=$(echo $HOST_PORT | cut -d: -f 1)
export PGPORT=$(echo $HOST_PORT | cut -d: -f 2)
Connect using psql:
psql -U postgres

Greifen Sie direkt auf den PostgreSQL-Pod zu:

oc exec -it acid-cluster-avitech-0 -n zalando-cluster -- /bin/sh

Starten Sie psql innerhalb des Pods:

psql

Ändern Sie das Passwort, falls erforderlich:

ALTER USER postgres WITH PASSWORD 'ExampleStrongPassword'

Um sich mit dem Zalando PostgreSQL-Cluster über JDBC zu verbinden, stellen Sie sicher, dass Ihr Verbindungsstring korrekt konfiguriert ist. Nachfolgend finden Sie die entsprechenden Formate:

jdbc:postgresql://acid-cluster-avitech.zalando-cluster.svc.cluster.local:5432/postgres?postgres&ssl=true&sslmode=require
jdbc:postgresql://<svc-name>.<namespace>.svc.cluster.local:5432/postgres?postgres&ssl=true&sslmode=require

Wichtige Punkte:

  • Ersetzen Sie durch den Namen des PostgreSQL-Dienstes
  • Ersetzen Sie durch den Kubernetes-Namensraum, in dem der Cluster bereitgestellt wird
  • Vergewissern Sie sich, dass SSL aktiviert ist (ssl=true) und der sslmode für sichere Verbindungen auf require gesetzt ist.

Die Bereitstellung eines PostgreSQL-Clusters auf OKD/OpenShift unter Verwendung des Zalando Postgres Operators ist einfach und hoch skalierbar. Wenn Sie diese Anleitung befolgen, können Sie Ihren Datenbank-Cluster nahtlos mit einer StorageClass oder NFS konfigurieren und so eine zuverlässige Speicherung und robuste Leistung sicherstellen.

Weitere Informationen finden Sie in der Zalando Postgres Operator Dokumentation.

Entdecken Sie die SRE-Services von ITGix und erfahren Sie mehr über unser Know-how.

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

AI SRE Agent: Die ersten 20 Minuten eines Vorfalls automatisieren Es ist 3 Uhr morgens. Ein Alarm wird ausgelöst. Sie klappen Ihren Laptop auf, und die nächsten zwanzig Minuten verlaufen wie immer...
Lesen
Bei der Arbeit mit Terraform sollte das Standard-Meta-Argument zum Erstellen von Ressourcen fast immer „for_each“ lauten – insbesondere bei Infrastruktur, die voraussichtlich lange bestehen bleibt und sich weiterentwickelt...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.