Erstellen eines „ Postgres “-Datenspeichers auf Linux on Power ( ppc64le )

Installieren Sie den Operator Postgres und richten Sie den Datenspeicher ein.

Vorbereitende Schritte

Stellen Sie sicher, dass Sie Ihren Online-und Offline-Host vorbereitet haben, um Images aus dem externen Repository zu extrahieren. Stellen Sie außerdem sicher, dass das richtige Helm -Repository hinzugefügt wurde.

Weitere Informationen finden Sie unter „Vorbereitung der Installation des Datenspeichers “.

Postgres Betriebssystemversionen und Image-Tags für die Bereitstellung

Die folgenden Images sind für die fixierten Helm -Diagramm-oder Operatorversionen erforderlich.

CNPG Postgres

Tabelle 1. CNPG Postgres Operatorversionen und Bild-Tags
Plattform Operatorversionen Version des Helm-Diagramms Image mit Tag
Linux® on Power® (ppc64le) v1.29.1 0.28.2

artifact-public.instana.io/self-hosted-images/3rd-party/operator/cloudnative-pg: v1.29.1_v0.34.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cnpg-containers: 15_v0.39.0

Zalando Postgres

Tabelle 2. Zalando Postgres Operatorversionen und Bild-Tags
Plattform Operatorversionen Version des Helm-Diagramms Image mit Tag
Linux® on Power® (ppc64le) 1.10.0 v1.10.1

artifact-public.instana.io/self-hosted-images/3rd-party/operator/zalando: v1.10.0_v0.1.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zalando: 15.7_v0.1.0

Postgres online installieren

Installieren Sie den Operator „ Postgres “ in einer Online-Umgebung.

Installation von „ Postgres “ mithilfe des Befehls „ CloudNativePG “

Führen Sie die folgenden Schritte aus, um den Datenspeicher „ Postgres “ zu installieren.

  1. Erstellen Sie den Namensbereich instana-postgres .

    kubectl create namespace instana-postgres
     
  2. Erstellen Sie Bildzugriffsgeheimnisse für den Namensraum instana-postgres.

    kubectl create secret docker-registry instana-registry --namespace instana-postgres \
      --docker-username=_ \
      --docker-password=<download_key> \
      --docker-server=artifact-public.instana.io
     
  3. Wenn Sie „ Postgres “ auf einem „ Red Hat® OpenShift® “-Cluster installieren, ermitteln Sie die Dateisystem-Gruppen-ID anhand des instana-postgres Namespace. Red Hat OpenShift erfordert, dass sich Dateisystemgruppen innerhalb eines für den Namensraum spezifischen Wertebereichs befinden.

    kubectl get namespace instana-postgres -o yaml
     

    Für den Befehl wird eine Ausgabe angezeigt, die dem folgenden Beispiel ähnelt:

    apiVersion: v1
    kind: Namespace
    metadata:
    annotations:
      .......
      openshift.io/sa.scc.uid-range: 1000750000/10000
      creationTimestamp: "2024-01-14T07:04:59Z"
    labels:
      kubernetes.io/metadata.name: instana-postgres
      .......
      name: instana-postgres
     

    Die openshift.io/sa.scc.supplemental-groups Anmerkung enthält den Bereich der zulässigen IDs. Der Bereich 1000750000/10000 umfasst 10.000 Werte, beginnend mit der ID 1000750000, d. h. er gibt den Bereich der IDs von 1000750000 bis 1000760000an. In diesem Beispiel könnte der 1000750000 Wert als Dateisystem-Gruppen-ID (UID) verwendet werden.

  4. Installieren Sie den Operator „ Postgres “. Verwenden Sie die UID aus dem vorherigen Schritt als im <UID from namespace> folgenden Befehl:

    helm install cnpg instana/cloudnative-pg --set image.repository=artifact-public.instana.io/self-hosted-images/3rd-party/operator/cloudnative-pg --set image.tag=v1.29.1_v0.34.0 --version=0.28.2 --set imagePullSecrets[0].name=instana-registry --set containerSecurityContext.runAsUser=<UID from namespace> --set containerSecurityContext.runAsGroup=<UID from namespace> -n instana-postgres
     
  5. Erstellen Sie ein Passwort unter base64. Notieren Sie sich das Passwort. Das musst du später in der config.yaml Datei speichern.

    openssl rand -base64 24 | tr -cd 'a-zA-Z0-9' | head -c32; echo
     
  6. Erstellen Sie eine Ressource vom Typ Secret unter Verwendung des Passworts, das Sie im vorherigen Befehl erhalten haben.

    kind: Secret
    apiVersion: v1
    metadata:
      name: instanaadmin
    type: Opaque
    stringData:
      username: instanaadmin
      password: <user-generate-password>
     
  7. Erstellen Sie den geheimen Schlüssel „ Postgres “.

    kubectl apply -f postgres-secret.yaml -n instana-postgres
     
  8. Erstellen Sie eine Datei namens „ YAML “, beispielsweise mit der Clusterkonfiguration postgres.yaml „ Postgres “.

    apiVersion: postgresql.cnpg.io/v1
    kind: Cluster
    metadata:
      name: postgres
    spec:
      instances: 3
      imageName: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cnpg-containers:15_v0.39.0
      imagePullPolicy: IfNotPresent
      imagePullSecrets:
        - name: instana-registry
      postgresql:
        parameters:
          shared_buffers: 32MB
          pg_stat_statements.track: all
          auto_explain.log_min_duration: '10s'
        pg_hba:
          - local     all          all                            trust
          - host      all          all          0.0.0.0/0         md5
          - local     replication  standby                        trust
          - hostssl   replication  standby      all               md5
          - hostnossl all          all          all               reject
          - hostssl   all          all          all               md5
      managed:
        roles:
        - name: instanaadmin
          login: true
          superuser: true
          createdb: true
          createrole: true
          passwordSecret:
            name: instanaadmin
      bootstrap:
        initdb:
          database: instanaadmin
          owner: instanaadmin
          secret:
            name: instanaadmin
      superuserSecret:
        name: instanaadmin
      storage:
        size: 1Gi
      #    storageClass: "Optional"
     
  9. Führen Sie die Schritte unter Postgres (online und offline)aus.

Installation von „ Postgres “ mithilfe des Befehls „ Zalando “

Führen Sie die folgenden Schritte aus, um den Operator „ Zalando “ Postgres online bereitzustellen:

  1. Wenn Sie einen „ Red Hat OpenShift “-Cluster verwenden, erstellen Sie „Security Context Constraints“ (SCC), bevor Sie den „ Postgres “-Operator bereitstellen.

    1. Erstellen Sie eine Datei „ YAML “, beispielsweise postgres-scc.yamlmit der SCC-Ressourcendefinition.

      apiVersion: security.openshift.io/v1
      kind: SecurityContextConstraints
      metadata:
        name: postgres-scc
      runAsUser:
        type: MustRunAs
        uid: 101
      seLinuxContext:
        type: RunAsAny
      fsGroup:
        type: RunAsAny
      allowHostDirVolumePlugin: false
      allowHostNetwork: true
      allowHostPorts: true
      allowPrivilegedContainer: false
      allowHostIPC: true
      allowHostPID: true
      readOnlyRootFilesystem: false
      users:
        - system:serviceaccount:instana-postgres:postgres-operator
        - system:serviceaccount:instana-postgres:postgres-pod
        - system:serviceaccount:instana-postgres:default
       
    2. Erstellen Sie die SCC-Ressource.

      kubectl apply -f postgres-scc.yaml
       
  2. Installieren Sie den Operator „ Postgres “.

    1. Erstellen Sie den Namensbereich instana-postgres .

      kubectl create namespace instana-postgres
       
    2. Erstellen Sie Bildzugriffsgeheimnisse für den Namensraum instana-postgres. Ersetzen Sie im folgenden Befehl den Wert <download_key> durch Ihren Agentenschlüssel.

      kubectl create secret docker-registry instana-registry --namespace instana-postgres \
        --docker-username=_ \
        --docker-password=<download_key> \
        --docker-server=artifact-public.instana.io
       
    3. Erstellen Sie eine Datei, zum Beispiel mit der Konfiguration „ Postgresvalues.yaml“.

      configGeneral:
        kubernetes_use_configmaps: true
      securityContext:
        runAsUser: 101
      image:
        registry: artifact-public.instana.io
        repository: self-hosted-images/3rd-party/operator/zalando
        tag: v1.10.0_v0.1.0
      imagePullSecrets:
        - name: instana-registry
      configKubernetes:
        pod_service_account_definition: |
          apiVersion: v1
          kind: ServiceAccount
          metadata:
            name: postgres-pod
          imagePullSecrets:
            - name: instana-registry
      podServiceAccount:
        name: postgres-pod
       
    4. Installieren Sie den Operator „ Postgres “.

      helm install postgres-operator instana/postgres-operator --version=v1.10.1 -f values.yaml -n instana-postgres
       
  3. Erstellen Sie eine Datei, z. B. postgres.yaml, mit der Ressourcendefinition postgresql .

    apiVersion: "acid.zalan.do/v1"
    kind: postgresql
    metadata:
      name: postgres
    spec:
      patroni:
        pg_hba:
          - local     all          all                            trust
          - host      all          all          0.0.0.0/0         trust
          - local     replication  standby                        trust
          - hostssl   replication  standby      all               trust
          - hostnossl all          all          all               reject
          - hostssl   all          all          all               trust
      dockerImage: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0
      teamId: instana
      numberOfInstances: 3
      postgresql:
        version: "15"
        parameters:  # Expert section
          shared_buffers: "32MB"
      volume:
        size: 10Gi
        # Uncomment the following line to specify your own storage class, otherwise use the default.
        # storageClass: <REPLACE>
     
    1. Führen Sie die Schritte unter Postgres (online und offline)aus.

Postgres -Offline-Installation

Installieren Sie den Operator „ Postgres “ in einer Offline-Umgebung.

Offline-Installation von „ Postgres “ mithilfe des PG-Operators „ CloudNative “

Wenn Sie die Postgres -Images noch nicht aus der externen Registry extrahiert haben, als Sie für die Installation vorbereitethaben, können Sie sie jetzt extrahieren. Führen Sie die folgenden Befehle auf Ihrem Bastionshost aus: Kopieren Sie die Bilder anschließend auf Ihren „ Instana “-Host, der sich in Ihrer Air-Gapped-Umgebung befindet.

docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/cloudnative-pg:v1.29.1_v0.34.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cnpg-containers:15_v0.39.0
            

Führen Sie die folgenden Schritte auf Ihrem „ Instana “-Host aus.

  1. Versehen Sie die Images erneut mit Ihrer internen Image-Registry.

    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/cloudnative-pg:v1.29.1_v0.34.0 <internal-image-registry>/operator/cloudnative-pg:v1.29.1_v0.34.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cnpg-containers:15_v0.39.0 <internal-image-registry>/datastore/cnpg-containers:15_v0.39.0
                      
  2. Übertragen Sie die Images mit Push-Operation in Ihre interne Image-Registry auf Ihrem Bastionshost.

    docker push <internal-image-registry>/operator/cloudnative-pg:v1.29.1_v0.34.0
    docker push <internal-image-registry>/datastore/cnpg-containers:15_v0.39.0
                      
  3. Erstellen Sie den Namensbereich instana-postgres .

    kubectl create namespace instana-postgres
     
  4. Optional: Erstellen Sie ein Bildabrufgeheimnis, wenn Ihre interne Bildregistrierung eine Authentifizierung erfordert.

    kubectl create secret docker-registry <secret_name> --namespace instana-postgres \
    --docker-username=<registry_username> \
    --docker-password=<registry_password> \
    --docker-server=<internal-image-registry>:<internal-image-registry-port> \
    --docker-email=<registry_email>
     
  5. Wenn Sie „ Postgres “ auf einem „ Red Hat® OpenShift® “-Cluster installieren, ermitteln Sie die Dateisystem-Gruppen-ID anhand des instana-postgres Namespace. Red Hat OpenShift erfordert, dass sich Dateisystemgruppen innerhalb eines für den Namensraum spezifischen Wertebereichs befinden.

    kubectl get namespace instana-postgres -o yaml
     

    Für den Befehl wird eine Ausgabe angezeigt, die dem folgenden Beispiel ähnelt:

    apiVersion: v1
    kind: Namespace
    metadata:
    annotations:
      .......
      openshift.io/sa.scc.uid-range: 1000750000/10000
      creationTimestamp: "2024-01-14T07:04:59Z"
    labels:
      kubernetes.io/metadata.name: instana-postgres
      .......
      name: instana-postgres
     

    Die openshift.io/sa.scc.supplemental-groups Anmerkung enthält den Bereich der zulässigen IDs. Der Bereich 1000750000/10000 umfasst 10.000 Werte, beginnend mit der ID 1000750000, d. h. er gibt den Bereich der IDs von 1000750000 bis 1000760000an. In diesem Beispiel könnte der 1000750000 Wert als Dateisystem-Gruppen-ID (UID) verwendet werden.

  6. Installieren Sie den Operator „ Postgres “. Ersetzen Sie im folgenden Befehl den Wert <download_key> durch Ihren eigenen Agentenschlüssel. Wenn Sie ein Image-Pull-Secret für Ihr internes Registry erstellt haben, fügen Sie --docker-server=<internal-image-registry>:<internal-image-registry-port> zum folgenden Befehl hinzu.

    • Red Hat OpenShift Cluster

      Verwenden Sie die UID aus dem vorherigen Schritt in <UID from namespace> den folgenden Befehlen:

      helm install cnpg cloudnative-pg-1.28.0.tgz --set image.repository=image-registry.openshift-image-registry.svc:5000/instana-postgres/cloudnative-pg-operator --set image.tag=v1.29.1_v0.34.0 --version=0.28.2 --set containerSecurityContext.runAsUser=<UID from namespace> --set containerSecurityContext.runAsGroup=<UID from namespace> -n instana-postgres
       
    • Kubernetes-Cluster

      helm install cnpg cloudnative-pg-operator --set image.repository=<internal-image-registry>/operator/cloudnative-pg --set image.tag=v1.29.1_v0.34.0 --version=0.28.2 -n instana-postgres
       
  7. Erstellen Sie ein Passwort unter base64. Notieren Sie sich das Passwort. Das musst du später in der config.yaml Datei speichern.

    openssl rand -base64 24 | tr -cd 'a-zA-Z0-9' | head -c32; echo
     
  8. Erstellen Sie eine Ressource vom Typ Secret unter Verwendung des Passworts, das Sie im vorherigen Befehl erhalten haben.

    kind: Secret
    apiVersion: v1
    metadata:
      name: instanaadmin
    type: Opaque
    stringData:
      username: instanaadmin
      password: <user-generate-password>
     
  9. Erstellen Sie den geheimen Schlüssel „ Postgres “.

    kubectl apply -f postgres-secret.yaml -n instana-postgres
     
  10. Erstellen Sie eine Datei namens „ YAML “, beispielsweise mit der Clusterkonfiguration postgres.yaml „ Postgres “.

    apiVersion: postgresql.cnpg.io/v1
    kind: Cluster
    metadata:
      name: postgres
    spec:
      instances: 3
      imageName: <internal-image-registry>/datastore/cnpg-containers:15_v0.39.0
      imagePullPolicy: IfNotPresent
     # Optional: if you created an image pull secret for your internal registry, uncomment the following lines and update the image pull secret information.
     # imagePullSecrets:
     #   - name: <internal-image-registry-pull-secret>
      postgresql:
        parameters:
          shared_buffers: 32MB
          pg_stat_statements.track: all
          auto_explain.log_min_duration: '10s'
        pg_hba:
          - local     all          all                            trust
          - host      all          all          0.0.0.0/0         md5
          - local     replication  standby                        trust
          - hostssl   replication  standby      all               md5
          - hostnossl all          all          all               reject
          - hostssl   all          all          all               md5
      managed:
        roles:
        - name: instanaadmin
          login: true
          superuser: true
          createdb: true
          createrole: true
          passwordSecret:
            name: instanaadmin
      bootstrap:
        initdb:
          database: instanaadmin
          owner: instanaadmin
          secret:
            name: instanaadmin
      superuserSecret:
        name: instanaadmin
      storage:
        size: 1Gi
      #    storageClass: "Optional"
     
  11. Führen Sie die Schritte unter Postgres (online und offline)aus.

Offline-Installation von „ Postgres “ mithilfe des Befehls „ Zalando “

Wenn Sie einen „ Red Hat OpenShift “-Cluster verwenden, erstellen Sie „Security Context Constraints“, bevor Sie den „ Postgres “-Operator bereitstellen.

  1. Erstellen Sie eine Datei „ YAML “, beispielsweise postgres-scc.yamlmit der SCC-Ressourcendefinition.

    apiVersion: security.openshift.io/v1
    kind: SecurityContextConstraints
    metadata:
      name: postgres-scc
    runAsUser:
      type: MustRunAs
      uid: 101
    seLinuxContext:
      type: RunAsAny
    fsGroup:
      type: RunAsAny
    allowHostDirVolumePlugin: false
    allowHostNetwork: true
    allowHostPorts: true
    allowPrivilegedContainer: false
    allowHostIPC: true
    allowHostPID: true
    readOnlyRootFilesystem: false
    users:
      - system:serviceaccount:instana-postgres:postgres-operator
      - system:serviceaccount:instana-postgres:postgres-pod
      - system:serviceaccount:instana-postgres:default
     
  2. Erstellen Sie die SCC-Ressource.

    kubectl apply -f postgres-scc.yaml
     

Fahren Sie anschließend mit der Installation des Operators Postgres fort.

Wenn Sie die Postgres -Images noch nicht aus der externen Registry extrahiert haben, als Sie für die Installation vorbereitethaben, können Sie sie jetzt extrahieren. Führen Sie die folgenden Befehle auf Ihrem Bastionshost aus: Kopieren Sie die Bilder anschließend auf Ihren „ Instana “-Host, der sich in Ihrer Air-Gapped-Umgebung befindet.

docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/zalando:v1.10.0_v0.1.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0
            

Führen Sie die folgenden Schritte auf Ihrem „ Instana “-Host aus.

  1. Versehen Sie die Images erneut mit Ihrer internen Image-Registry.

    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/zalando:v1.10.0_v0.1.0 <internal-image-registry>/self-hosted-images/3rd-party/operator/zalando:v1.10.0_v0.1.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0 <internal-image-registry>/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0
                      
  2. Übertragen Sie die Images mit Push-Operation in Ihre interne Image-Registry auf Ihrem Bastionshost.

    docker push <internal-image-registry>/self-hosted-images/3rd-party/operator/zalando:v1.10.0_v0.1.0
    docker push <internal-image-registry>/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0
                      
  3. Erstellen Sie eine Datei, zum Beispiel mit der Konfiguration „ Postgresvalues.yaml“.

    configGeneral:
      kubernetes_use_configmaps: true
    securityContext:
      runAsUser: 101
    image:
      registry: <internal-image-registry>
      repository: self-hosted-images/3rd-party/operator/zalando
      tag: v1.10.0_v0.1.0
    imagePullSecrets:
      - name: instana-registry
    configKubernetes:
      pod_service_account_definition: |
        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: postgres-pod
        imagePullSecrets:
          - name: instana-registry
    podServiceAccount:
      name: postgres-pod
     
  4. Erstellen Sie den Namensbereich instana-postgres .

    kubectl create namespace instana-postgres
     
  5. Optional: Erstellen Sie ein Bildabrufgeheimnis, wenn Ihre interne Bildregistrierung eine Authentifizierung erfordert.

    kubectl create secret docker-registry <secret_name> --namespace instana-postgres \
    --docker-username=<registry_username> \
    --docker-password=<registry_password> \
    --docker-server=<internal-image-registry>:<internal-image-registry-port> \
    --docker-email=<registry_email>
     
  6. Installieren Sie den Operator „ Postgres “. Wenn Sie im vorherigen Schritt ein Bildzugriffsgeheimnis erstellt haben, fügen Sie --set imagePullSecrets[0].name="<internal-image-registry-pull-secret>" zum folgenden Befehl hinzu.

    helm install postgres-operator postgres-operator-ppc64le-1.10.0.tgz --version=1.10.0 --set configGeneral.kubernetes_use_configmaps=true --set securityContext.runAsUser=101 --namespace=instana-postgres --set image.registry=<internal-image-registry>  --set image.repository=ppc64le-oss/postgres-operator-ppc64le --set image.tag=v1.10.0_v0.1.0
                      
  7. Erstellen Sie eine Datei, z. B. postgres.yaml, mit der Ressourcendefinition postgresql .

    apiVersion: "acid.zalan.do/v1"
    kind: postgresql
    metadata:
      name: postgres
    spec:
      patroni:
        pg_hba:
          - local     all          all                            trust
          - host      all          all          0.0.0.0/0         trust
          - local     replication  standby                        trust
          - hostssl   replication  standby      all               trust
          - hostnossl all          all          all               reject
          - hostssl   all          all          all               trust
      dockerImage: <internal-image-registry>/self-hosted-images/3rd-party/datastore/zalando:15.7_v0.1.0
      teamId: instana
      numberOfInstances: 3
      postgresql:
        version: "15"
        parameters:  # Expert section
          shared_buffers: "32MB"
      volume:
        size: 10Gi
        # Uncomment the line below to specify your own storage class, otherwise use the default.
        # storageClass: <REPLACE>
     
  8. Führen Sie die Schritte unter Postgres (online und offline)aus.

Bereitstellung und Überprüfung von „ Postgres “ (online und offline)

Führen Sie die folgenden Schritte aus, um die Postgres -Instanz zu implementieren und den Datenspeicher zu erstellen.

  1. Erstellen Sie die Ressource postgresql .

    kubectl apply -f postgres.yaml --namespace=instana-postgres
     
  2. Wenn Sie den Operator „ CNPG “ verwendet haben, führen Sie die folgenden Schritte aus:

    1. Speichern Sie das zuvor generierte Passwort in der config.yaml Datei.

      datastoreConfigs:
        ...
        postgresConfigs:
          - user: instanaadmin
            password: <USER_GENERATED_PASSWORD>
            adminUser: instanaadmin
            adminPassword: <USER_GENERATED_PASSWORD>
        ...
       
  3. Wenn Sie den Operator „ Zalando “ verwendet haben, führen Sie die folgenden Schritte aus:

    1. Rufen Sie das automatisch generierte Passwort des Benutzers „ Zalando “ ab. Standardmäßig erstellt Zalando den postgres Benutzer mit einem zufällig generierten Passwort.

      kubectl get secret postgres.postgres.credentials.postgresql.acid.zalan.do -n instana-postgres --template='{{index .data.password | base64decode}}' && echo
       
    2. Speichern Sie das abgerufene Kennwort in der Datei config.yaml .

      • Ersetzen Sie den Variablenwert ` < RETRIEVED_FROM_SECRET > durch das Kennwort, das Sie im vorherigen Schritt erhalten haben.
      • Ersetzen Sie <username in the Postgres data store> durch den Benutzernamen von Zalando.
      datastoreConfigs:
        ...
        postgresConfigs:
          - user: <username in the Postgres data store>
            password: <RETRIEVED_FROM_SECRET>
            adminUser: <username in the Postgres data store>
            adminPassword: <RETRIEVED_FROM_SECRET>
        ...
       
  4. Überprüfen Sie den Einsatz des Postgres-Operators.

    kubectl get all -n instana-postgres
     

    Wenn der Operator Postgres erfolgreich eingesetzt wird, sieht das Ergebnis des Befehls wie folgt aus:

    • Die folgende Ausgabe ist ein Beispiel für den Operator „ Zalando “:

      NAME                                     READY   STATUS    RESTARTS   AGE
      pod/postgres-0                           1/1     Running   0          100s
      pod/postgres-1                           1/1     Running   0          69s
      pod/postgres-2                           1/1     Running   0          41s
      pod/postgres-operator-766455c58c-ntmpf   1/1     Running   0          11m
      
      NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
      service/postgres            ClusterIP   192.168.1.107   <none>        5432/TCP   101s
      service/postgres-operator   ClusterIP   192.168.1.35    <none>        8080/TCP   11m
      service/postgres-repl       ClusterIP   192.168.1.72    <none>        5432/TCP   101s
      
      NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
      deployment.apps/postgres-operator   1/1     1            1           11m
      
      NAME                                           DESIRED   CURRENT   READY   AGE
      replicaset.apps/postgres-operator-766455c58c   1         1         1       11m
      
      NAME                        READY   AGE
      statefulset.apps/postgres   3/3     103s
      
      NAME                                                    IMAGE                             CLUSTER-LABEL   SERVICE-ACCOUNT   MIN-INSTANCES   AGE
      operatorconfiguration.acid.zalan.do/postgres-operator   ghcr.io/zalando/spilo-15:3.0-p1   cluster-name    postgres-pod      -1              11m
      
      NAME                                TEAM      VERSION   PODS   VOLUME   CPU-REQUEST   MEMORY-REQUEST   AGE    STATUS
      postgresql.acid.zalan.do/postgres   instana   15        3      10Gi     500m          2Gi              106s   Running
       
    • Die folgende Ausgabe ist ein Beispiel fürCloudNativePG Operator:

      NAME                                      READY    STATUS    RESTARTS    AGE
      pod/postgres-1                             1/1     Running     0         100s
      pod/postgres-2                             1/1     Running     0         69s
      pod/postgres-3                             1/1     Running     0         41s
      pod/cnpg-cloudnative-pg-64bbc87958-fqnrl   1/1     Running     0         11m
      
      NAME                           TYPE        CLUSTER-IP       EXTERNAL-IP   PORT
      service/cnpg-webhook-service   ClusterIP   172.30.66.183    <none>        443/TCP
      service/postgres-r             ClusterIP   172.30.163.146   <none>        5432/TCP
      service/postgres-ro            ClusterIP   172.30.226.75    <none>        5432/TCP
      service/postgres-rw            ClusterIP   172.30.235.178   <none>        5432/TCP
      
      NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
      deployment.apps/cnpg-cloudnative-p   1/1     1            1           11m
      
      NAME                                           DESIRED   CURRENT   READY   AGE
      replicaset.apps/cnpg-cloudnative-pg-64bbc87958   1         1         1       11m
       

Daten von Zalando auf CloudNativePG migrieren

Im pg_basebackup Bootstrap-Modus können Sie einen neuen „ PostgreSQL “-Cluster (Ziel) erstellen, der den genauen physischen Zustand einer bestehenden „ PostgreSQL “-Instanz (Quelle) repliziert.

Sie können über eine gültige Streaming-Replikationsverbindung von einem aktiven Cluster aus starten und dabei die Quellinstanz von PostgreSQL entweder als primären oder als Standby-Server von PostgreSQL verwenden.

Informationen zur Migration von Daten aus einem Cluster unter Zalando PostgreSQL über den pg_basebackup Bootstrap-Modus in einen Replikationscluster unter CloudNativePG finden Sie unter „Migration von Daten von Zalando zu CloudNativePG “.