Atualização do banco de dados do Postgres em Linux on IBM Z and LinuxONE
Atualize o operador ` Postgres `.
Antes de iniciar
Certifique-se de que preparou seu host online e offline para extrair imagens do repositório externo. Além disso, certifique-se de que o repositório correto Helm foi adicionado.
Postgres Versões do operador e tags de imagem para implantação
As imagens a seguir são necessárias para as versões fixadas do gráfico ou do operador Helm.
| Plataforma | Versões do operador | Versão do gráfico do Helm | Imagem com 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 |
Atualizando o Postgres online usando o operador CloudNativePG
Siga estas etapas para atualizar o Operador do Postgres em um ambiente online.
Crie
custom_values.yamle especifique a tolerância e a afinidade. Pule esta etapa se o arquivo já tiver sido criado.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"Atualize o Operador do Postgres. Use o UID da etapa anterior como no
<UID from namespace>comando a seguir: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.yamlAtualize o ` Postgres ` aplicando um patch na configuração do cluster.
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 'Conclua as etapas em Verificação de Postgres (online e offline).
Atualizando um Postgres offline usando o operador PG CloudNative
Atualize o operador Postgres em um ambiente isolado.
Se você ainda não baixou as imagens Postgres do registro externo, pode baixá-las agora. Execute os seguintes comandos no seu host bastion. Em seguida, copie as imagens para o seu host Instana que está em 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
Conclua as seguintes etapas no seu host Instana.
Reetiquete as imagens no seu registro interno de imagens.
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.0Envie as imagens para o seu registro interno de imagens no seu 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.0Se você estiver atualizando o Postgres em um Red Hat® OpenShift® cluster, determine o ID do grupo do sistema de arquivos a partir do
instana-postgresnamespace. 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 yamlUma saída semelhante ao exemplo a seguir é exibida para o comando:
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-postgresA
openshift.io/sa.scc.supplemental-groupsanotação contém o intervalo de IDs permitidos. O intervalo1000750000/10000indica 10.000 valores começando com o ID1000750000, portanto, especifica o intervalo de IDs de1000750000a1000760000. Neste exemplo, o valor1000750000pode ser usado como um ID de grupo do sistema de arquivos (UID).Adicione
custom_values.yamle especifique a tolerância e a afinidade. Pule esta etapa se o arquivo já tiver sido criado.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"Atualizar o Operador d Postgres. No comando a seguir, substitua o valor de <download_key> pela sua própria chave de agente.
Red Hat OpenShift agrupamento
Use o UID da etapa anterior como nos
<UID from namespace>comandos a seguir: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.yamlCluster 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 -n instana-postgres
Atualize o ` Postgres ` aplicando um patch na configuração do cluster.
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 'Conclua as etapas em Verificação de Postgres (online e offline).
Verificando Postgres (online e offline)
Siga estas etapas para verificar a instância do Postgres e o armazenamento de dados.
Verifique a atualização do operador Postgres.
kubectl get all -n instana-postgresSe o Operador do ` Postgres ` for implantado com sucesso, o resultado do comando será o seguinte:
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 11mCertifique-se de que os pods estejam agendados nos nós desejados.
kubectl get pods -n instana-postgres -o wideO exemplo a seguir mostra um resultado de saída.
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>