Criação de um repositório de dados do Postgres no Linux on Power ( ppc64le )

Instale o operador do Postgres e configure o armazenamento de dados

Postgres versões do operador e tags de imagem para implantação

As imagens a seguir são necessárias para o gráfico Helm fixado ou versões do operador.

CNPG Postgres

Tabela 1. CNPG Postgres versões do operador e tags de imagem
Plataforma Versões do operador Versão do gráfico do Helm Imagem com 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

Tabela 2. Zalando Postgres versões do operador e tags de imagem
Plataforma Versões do operador Versão do gráfico do Helm Imagem com 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

Instalando o Postgres online

Instale o operador ` Postgres ` em um ambiente online.

Instalando o ` Postgres ` usando o operador ` CloudNativePG `

Siga estas etapas para instalar o armazenamento de dados do Postgres.

  1. Crie o namespace instana-postgres .

    kubectl create namespace instana-postgres
     
  2. Crie segredos de extração de imagem para o namespace 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. Se você estiver instalando o Postgres em um cluster do Red Hat® OpenShift®, determine o ID do grupo do sistema de arquivos a partir do instana-postgres namespace. Red Hat OpenShift exige que os grupos do sistema de arquivos estejam dentro de um intervalo de valores específico para o namespace.

    kubectl get namespace instana-postgres -o yaml
     

    Para o comando, é exibida uma saída semelhante ao exemplo a seguir:

    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
     

    A openshift.io/sa.scc.supplemental-groups anotação contém o intervalo de IDs permitidos. O intervalo 1000750000/10000 indica 10.000 valores a partir do ID 1000750000, portanto, especifica o intervalo de IDs de 1000750000 a 1000760000. Neste exemplo, o valor 1000750000 pode ser usado como um ID de grupo do sistema de arquivos (UID).

  4. Instale o operador ` Postgres `. Use o UID da etapa anterior como no <UID from namespace> comando a seguir:

    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. Gere uma senha no site base64. Anote a senha. Você precisa salvar isso mais tarde no arquivo config.yaml .

    openssl rand -base64 24 | tr -cd 'a-zA-Z0-9' | head -c32; echo
     
  6. Crie um recurso do tipo Secret usando a senha obtida no comando anterior.

    kind: Secret
    apiVersion: v1
    metadata:
      name: instanaadmin
    type: Opaque
    stringData:
      username: instanaadmin
      password: <user-generate-password>
     
  7. Crie o segredo do serviço de armazenamento em nuvem ( Postgres ).

    kubectl apply -f postgres-secret.yaml -n instana-postgres
     
  8. Crie um arquivo ` YAML `, por exemplo postgres.yaml, com a configuração do cluster ` 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. Conclua as etapas em Implementando e verificando o Postgres (online e offline).

Instalando o ` Postgres ` usando o operador ` Zalando `

Para implantar o operador Postgres do Zalando online, siga estas etapas:

  1. Se você estiver usando um cluster do Red Hat OpenShift, crie Restrições de Contexto de Segurança (SCC) antes de implantar o operador Postgres.

    1. Crie um arquivo ` YAML `, por exemplo postgres-scc.yaml, com a definição do recurso SCC.

      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. Crie o recurso de SCC

      kubectl apply -f postgres-scc.yaml
       
  2. Instale o operador ` Postgres `.

    1. Crie o namespace instana-postgres .

      kubectl create namespace instana-postgres
       
    2. Crie segredos de extração de imagem para o namespace instana-postgres. No comando a seguir, substitua o valor <download_key> por sua chave de agente.

      kubectl create secret docker-registry instana-registry --namespace instana-postgres \
        --docker-username=_ \
        --docker-password=<download_key> \
        --docker-server=artifact-public.instana.io
       
    3. Crie um arquivo, por exemplo values.yaml, com a configuração Postgres.

      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. Instale o operador ` Postgres `.

      helm install postgres-operator instana/postgres-operator --version=v1.10.1 -f values.yaml -n instana-postgres
       
  3. Crie um arquivo, por exemplo postgres.yaml, com a definição de recurso 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. Conclua as etapas em Implementando e verificando o Postgres (online e offline).

Instalando o Postgres no modo offline

Instale o operador do ` Postgres ` em um ambiente offline.

Instalando o ` Postgres ` offline usando o operador `PG` do ` CloudNative `

Se você ainda não tiver extraído as imagens do Postgres do registro externo quando estiver preparado para a instalação, será possível extrai-las agora! Execute os comandos a seguir no host bastion. Em seguida, copie as imagens para o seu servidor de armazenamento de imagens ( Instana ) localizado no seu ambiente isolado.

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
            

Siga as etapas a seguir no seu servidor do Instana.

  1. Remarque as imagens para o seu registro de imagem interno

    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. Envie por push as imagens para seu registro de imagem interno no host bastion.

    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. Crie o namespace instana-postgres .

    kubectl create namespace instana-postgres
     
  4. Opcional: Crie um segredo de image pull se o seu registro de imagem interno precisar de autenticação.

    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. Se você estiver instalando o Postgres em um cluster do Red Hat® OpenShift®, determine o ID do grupo do sistema de arquivos a partir do instana-postgres namespace. Red Hat OpenShift exige que os grupos do sistema de arquivos estejam dentro de um intervalo de valores específico para o namespace.

    kubectl get namespace instana-postgres -o yaml
     

    Para o comando, é exibida uma saída semelhante ao exemplo a seguir:

    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
     

    A openshift.io/sa.scc.supplemental-groups anotação contém o intervalo de IDs permitidos. O intervalo 1000750000/10000 indica 10.000 valores a partir do ID 1000750000, portanto, especifica o intervalo de IDs de 1000750000 a 1000760000. Neste exemplo, o valor 1000750000 pode ser usado como um ID de grupo do sistema de arquivos (UID).

  6. Instale o operador ` Postgres `. No comando a seguir, substitua o valor de <download_key> pela sua própria chave de agente. Se você criou um segredo de pull de imagem para o seu registro interno, adicione --docker-server=<internal-image-registry>:<internal-image-registry-port> ao comando a seguir.

    • Red Hat OpenShift agrupamento

      Use o UID da etapa anterior como nos <UID from namespace> comandos a seguir:

      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
       
    • Cluster Kubernetes

      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. Gere uma senha no site base64. Anote a senha. Você precisa salvar isso mais tarde no arquivo config.yaml .

    openssl rand -base64 24 | tr -cd 'a-zA-Z0-9' | head -c32; echo
     
  8. Crie um recurso do tipo Secret usando a senha obtida no comando anterior.

    kind: Secret
    apiVersion: v1
    metadata:
      name: instanaadmin
    type: Opaque
    stringData:
      username: instanaadmin
      password: <user-generate-password>
     
  9. Crie o segredo do serviço de armazenamento em nuvem ( Postgres ).

    kubectl apply -f postgres-secret.yaml -n instana-postgres
     
  10. Crie um arquivo ` YAML `, por exemplo postgres.yaml, com a configuração do cluster ` 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. Conclua as etapas em Implementando e verificando o Postgres (online e offline).

Instalação do ` Postgres ` no modo offline usando o operador ` Zalando `

Se você estiver usando um cluster do Red Hat OpenShift, crie Restrições de Contexto de Segurança antes de implantar o operador Postgres.

  1. Crie um arquivo ` YAML `, por exemplo postgres-scc.yaml, com a definição do recurso SCC.

    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. Crie o recurso de SCC

    kubectl apply -f postgres-scc.yaml
     

Em seguida, continue com a instalação do operador do Postgres

Se você ainda não tiver extraído as imagens do Postgres do registro externo quando estiver preparado para a instalação, será possível extrai-las agora! Execute os comandos a seguir no host bastion. Em seguida, copie as imagens para o seu servidor de armazenamento de imagens ( Instana ) localizado no seu ambiente isolado.

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
            

Siga as etapas a seguir no seu servidor do Instana.

  1. Remarque as imagens para o seu registro de imagem interno

    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. Envie por push as imagens para seu registro de imagem interno no host bastion.

    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. Crie um arquivo, por exemplo values.yaml, com a configuração Postgres.

    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. Crie o namespace instana-postgres .

    kubectl create namespace instana-postgres
     
  5. Opcional: Crie um segredo de image pull se o seu registro de imagem interno precisar de autenticação.

    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. Instale o operador ` Postgres `. Se você criou uma imagem pull secret na etapa anterior, adicione --set imagePullSecrets[0].name="<internal-image-registry-pull-secret>" ao comando a seguir.

    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. Crie um arquivo, por exemplo postgres.yaml, com a definição de recurso 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. Conclua as etapas em Implementando e verificando o Postgres (online e offline).

Implantação e verificação do ` Postgres ` (online e offline)

Conclua estas etapas para implementar a instância do Postgres e criar o armazenamento de dados

  1. Crie o recurso do postgresql

    kubectl apply -f postgres.yaml --namespace=instana-postgres
     
  2. Se você utilizou o operador ` CNPG `, siga estas etapas:

    1. Salve a senha que você gerou anteriormente no config.yaml arquivo.

      datastoreConfigs:
        ...
        postgresConfigs:
          - user: instanaadmin
            password: <USER_GENERATED_PASSWORD>
            adminUser: instanaadmin
            adminPassword: <USER_GENERATED_PASSWORD>
        ...
       
  3. Se você utilizou o operador ` Zalando `, siga estas etapas:

    1. Recupere a senha gerada automaticamente do usuário Zalando. Por padrão, o comando ` Zalando ` cria o postgres usuário com uma senha gerada aleatoriamente.

      kubectl get secret postgres.postgres.credentials.postgresql.acid.zalan.do -n instana-postgres --template='{{index .data.password | base64decode}}' && echo
       
    2. Armazene a senha recuperada no arquivo config.yaml

      • Substitua o valor da variável ` < RETRIEVED_FROM_SECRET> pela senha que você obteve na etapa anterior.
      • Substitua <username in the Postgres data store> por Zalando (nome de usuário).
      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. Verifique a implementação do operador Postgres.

    kubectl get all -n instana-postgres
     

    Se o operador Postgres for implantado com êxito, o resultado do comando será o seguinte:

    • A saída a seguir é um exemplo do operad 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
       
    • A saída a seguir é um exemplo paraCloudNativePG operador:

      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
       

Migração de dados de Zalando para CloudNativePG

Ao usar o modo pg_basebackup bootstrap, você pode criar um novo cluster do PostgreSQL (destino) que replica exatamente o estado físico de uma instância existente do PostgreSQL (origem).

É possível iniciar o processo a partir de um cluster ativo por meio de uma conexão válida de replicação por streaming, utilizando a instância de origem PostgreSQL como servidor primário ou como servidor de espera PostgreSQL.

Para migrar os dados de um cluster do Zalando PostgreSQL, por meio do modo pg_basebackup bootstrap, para um cluster de réplicas do CloudNativePG, consulte Migrando dados do Zalando para o CloudNativePG.