Aggiornamento dell'archivio dati dell' Postgres Linux x86_64

Aggiornare l'operatore Postgres e aggiornare l'archivio dati.

Prima di iniziare

Assicurati di aver preparato il tuo host online e offline per estrarre le immagini dal repository esterno. Assicurati inoltre che sia stato aggiunto il repository corretto Helm.

Postgres Versioni dell'operatore e tag immagine

Le seguenti immagini sono necessarie per le versioni con grafico o operatore dell' Helm.

Piattaforma Versioni operatore Versione grafico Helm Immagine con tag
Linux® x86_64 1.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

Aggiornamento online di Postgres utilizzando l'operatore CloudNativePG

Completa questi passaggi per aggiornare online l'archivio dati di Postgres.

  1. Se si sta aggiornando Postgres su un Red Hat® OpenShift® cluster, determinare l'ID del gruppo del file system dal instana-postgres namespace. Red Hat OpenShift richiede che i gruppi del file system rientrino in un intervallo di valori specifico per lo spazio dei nomi.

    kubectl get namespace instana-postgres -o yaml
     

    Per il comando viene visualizzato un output simile al seguente esempio:

    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
     

    L'annotazione openshift.io/sa.scc.supplemental-groups contiene l'intervallo degli ID consentiti. L'intervallo 1000750000/10000 indica 10.000 valori che iniziano con l'ID 1000750000, quindi specifica l'intervallo di ID da 1000750000 a 1000760000. In questo esempio, il valore 1000750000 potrebbe essere utilizzato come ID di gruppo del file system (UID).

  2. Aggiorna l'operatore Postgres.

    helm upgrade --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
     
  3. Aggiornare la risorsa cluster Postgres applicando la seguente patch.

    kubectl patch cluster postgres -n instana-postgres --type=merge --patch '
    spec:
      imageName: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cnpg-containers:15_v0.39.0
                   
  4. Completa i passaggi descritti in Verifica dell' Postgres e (online e offline).

Aggiornamento offline di Postgres utilizzando l'operatore PG CloudNative

Aggiornare l'operatore Postgres in un ambiente air-gapped.

Se non hai ancora scaricato le immagini Postgres dal registro esterno, puoi farlo ora. Esegui i seguenti comandi sul tuo host bastione. Quindi, copia le immagini sul tuo host Instana che si trova nel tuo ambiente air-gapped.

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
         

Completa i seguenti passaggi sul tuo host Instana.

  1. Rietichettare le immagini nel registro immagini 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. Trasferisci le immagini nel registro immagini interno sul tuo host bastione.

    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. Se si sta aggiornando Postgres su un Red Hat® OpenShift® cluster, determinare l'ID del gruppo del file system dal instana-postgres namespace. Red Hat OpenShift richiede che i gruppi del file system rientrino in un intervallo di valori specifico per lo spazio dei nomi.

    kubectl get namespace instana-postgres -o yaml
     

    Per il comando viene visualizzato un output simile al seguente esempio:

    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
     

    L'annotazione openshift.io/sa.scc.supplemental-groups contiene l'intervallo degli ID consentiti. L'intervallo 1000750000/10000 indica 10.000 valori che iniziano con l'ID 1000750000, quindi specifica l'intervallo di ID da 1000750000 a 1000760000. In questo esempio, il valore 1000750000 potrebbe essere utilizzato come ID di gruppo del file system (UID).

  4. Aggiorna l'operatore Postgres.

    • Red Hat OpenShift

      helm upgrade --install cnpg cloudnative-pg-0.28.2.tgz \
        --set image.repository=<internal-image-registry>/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> \
        --set image.imagePullSecrets[0].name="<internal-image-registry-pull-secret>" \
        -n instana-postgres
       
    • cluster di Kubernetes

      helm upgrade --install cnpg cloudnative-pg-0.28.2.tgz \
        --set image.repository=<internal-image-registry>/operator/cloudnative-pg \
        --set image.tag=v1.29.1_v0.34.0 \
        --version=0.28.2 \
        --set image.imagePullSecrets[0].name="<internal-image-registry-pull-secret>" \
        -n instana-postgres
       
  5. Aggiorna la configurazione del cluster Postgres, ad esempio postgres.yaml:

    kubectl patch cluster postgres -n instana-postgres --type=merge --patch '
    spec:
      imageName: <internal-image-registry>/self-hosted-images/3rd-party/datastore/cnpg-containers:15_v0.39.0
    '
     
  6. Completa i passaggi descritti in Verifica dell' Postgres e (online e offline).

Verifica dell' Postgres (online e offline)

Completa questi passaggi per verificare un'istanz Postgres e e un archivio dati.

  1. Verificare l'aggiornamento dell'operatore Postgres.

    kubectl get all -n instana-postgres
     

    Se l'aggiornamento dell'operatore Postgres viene eseguito correttamente, il risultato del comando è il seguente:

    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