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.
Se si sta aggiornando Postgres su un Red Hat® OpenShift® cluster, determinare l'ID del gruppo del file system dal
instana-postgresnamespace. 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 yamlPer 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-postgresL'annotazione
openshift.io/sa.scc.supplemental-groupscontiene l'intervallo degli ID consentiti. L'intervallo1000750000/10000indica 10.000 valori che iniziano con l'ID1000750000, quindi specifica l'intervallo di ID da1000750000a1000760000. In questo esempio, il valore1000750000potrebbe essere utilizzato come ID di gruppo del file system (UID).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-postgresAggiornare 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.0Completa 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.
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.0Trasferisci 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.0Se si sta aggiornando Postgres su un Red Hat® OpenShift® cluster, determinare l'ID del gruppo del file system dal
instana-postgresnamespace. 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 yamlPer 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-postgresL'annotazione
openshift.io/sa.scc.supplemental-groupscontiene l'intervallo degli ID consentiti. L'intervallo1000750000/10000indica 10.000 valori che iniziano con l'ID1000750000, quindi specifica l'intervallo di ID da1000750000a1000760000. In questo esempio, il valore1000750000potrebbe essere utilizzato come ID di gruppo del file system (UID).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-postgrescluster 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
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 '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.
Verificare l'aggiornamento dell'operatore Postgres.
kubectl get all -n instana-postgresSe 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