Aktualisierung des „ Postgres “-Datenspeichers auf Linux on IBM Z and LinuxONE
Aktualisieren Sie den Operator „ Postgres “.
Vorbereitende Schritte
Stellen Sie sicher, dass Sie Ihren Online- und Offline-Host so eingerichtet haben, dass Bilder aus dem externen Repository abgerufen werden können. Stellen Sie außerdem sicher, dass das richtige Repository „ Helm “ hinzugefügt wurde.
Postgres Betreiber-Versionen und Image-Tags für die Bereitstellung
Die folgenden Bilder werden für die festgesteckte „ Helm “-Tabelle oder die Bediener-Versionen benötigt.
| Plattform | Operatorversionen | Version des Helm-Diagramms | Bild mit 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 |
Postgres -Online-Upgrade mithilfe des Befehls „ CloudNativePG “
Führen Sie die folgenden Schritte aus, um den „ Postgres “-Operator in einer Online-Umgebung zu aktualisieren.
Erstellen Sie die Toleranz und
custom_values.yamldie Affinität und legen Sie diese fest. Überspringe diesen Schritt, wenn die Datei bereits erstellt wurde.tolerations: - key: node.instana.io/monitor operator: Equal effect: NoSchedule value: "true" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/monitor operator: In values: - "true"Aktualisieren Sie den „ Postgres “-Operator. Verwenden Sie die UID aus dem vorherigen Schritt als im
<UID from namespace>folgenden Befehl: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 -f custom_values.yamlAktualisieren Sie „ Postgres “, indem Sie die Clusterkonfiguration anpassen.
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 'Führen Sie die Schritte unter „ Postgres -Überprüfung“ (online und offline) durch.
Offline-Upgrade von „ Postgres “ mithilfe des Befehls „ CloudNative “
Aktualisieren Sie den „ Postgres “-Operator in einer isolierten Umgebung.
Falls Sie die „ Postgres “-Images noch nicht aus der externen Registry abgerufen haben, können Sie dies jetzt tun. Führen Sie die folgenden Befehle auf Ihrem Bastion-Host 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.
Ordnen Sie die Bilder erneut Ihrem internen Bildarchiv zu.
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.0Laden Sie die Images in Ihr internes Image-Repository auf Ihrem Bastion-Host hoch.
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.0Wenn Sie „ Postgres “ auf einem „ Red Hat® OpenShift® “-Cluster aktualisieren, ermitteln Sie die Dateisystem-Gruppen-ID anhand des
instana-postgresNamespace. Red Hat OpenShift erfordert, dass sich Dateisystemgruppen innerhalb eines für den Namensraum spezifischen Wertebereichs befinden.kubectl get namespace instana-postgres -o yamlFü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-postgresDie
openshift.io/sa.scc.supplemental-groupsAnmerkung enthält den Bereich der zulässigen IDs. Der Bereich1000750000/10000umfasst 10.000 Werte, beginnend mit der ID1000750000, d. h. er gibt den Bereich der IDs von1000750000bis1000760000an. In diesem Beispiel könnte der1000750000Wert als Dateisystem-Gruppen-ID (UID) verwendet werden.Fügen Sie hinzu
custom_values.yamlund geben Sie die Toleranz und die Affinität an. Überspringe diesen Schritt, wenn die Datei bereits erstellt wurde.tolerations: - key: node.instana.io/monitor operator: Equal effect: NoSchedule value: "true" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/monitor operator: In values: - "true"Postgres -Operator aktualisieren. Ersetzen Sie im folgenden Befehl den Wert <download_key> durch Ihren eigenen Agentenschlüssel.
Red Hat OpenShift Cluster
Verwenden Sie die UID aus dem vorherigen Schritt in
<UID from namespace>den folgenden Befehlen:helm upgrade --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 -f custom_values.yamlKubernetes-Cluster
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 -n instana-postgres
Aktualisieren Sie „ Postgres “, indem Sie die Clusterkonfiguration anpassen.
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 'Führen Sie die Schritte unter „ Postgres -Überprüfung“ (online und offline) durch.
Überprüfung von „ Postgres “ (online und offline)
Führen Sie die folgenden Schritte aus, um die „ Postgres “-Instanz und den Datenspeicher zu überprüfen.
Überprüfen Sie das Upgrade des „ Postgres “-Operators.
kubectl get all -n instana-postgresWenn der „ Postgres “-Operator erfolgreich bereitgestellt wurde, lautet das Ergebnis des Befehls wie folgt:
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 11mStellen Sie sicher, dass die Pods auf den gewünschten Knoten eingeplant sind.
kubectl get pods -n instana-postgres -o wideDas folgende Beispiel zeigt eine Beispielausgabe.
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cnpg-cloudnative-pg-7cdf76c49c-kztxr 1/1 Running 0 22d 10.254.20.122 worker0.instana-load-testing.cp.fyre.ibm.com <none> <none> postgres-1 1/1 Running 0 22d 10.254.20.124 worker0.instana-load-testing.cp.fyre.ibm.com <none> <none> postgres-3 1/1 Running 0 22d 10.254.16.93 worker1.instana-load-testing.cp.fyre.ibm.com <none> <none> postgres-4 1/1 Running 0 22d 10.254.24.65 worker3.instana-load-testing.cp.fyre.ibm.com <none> <none>