Atualização do armazenamento de dados do ` Cassandra ` no ` Linux on IBM Z and LinuxONE `

Você pode atualizar o operador ` Cassandra `.

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.

Cassandra 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® on IBM Z® and LinuxONE 1.29.0 0.63.1

artifact-public.instana.io/self-hosted-images/3rd-party/operator/cass-operator: 1.29.0_v0.39.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/system-logger: 1.26.0_v0.22.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/k8ssandra-client: 0.8.12_v0.33.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cassandra: 4.1.10_v0.41.0

Atualização onlin Cassandra

Para atualizar o armazenamento de dados do Cassandra em um ambiente online, siga estas etapas:

  1. Crie um arquivo cass_values.yaml para configurar restrições e tolerâncias.

    nodeSelector:
      node-role.kubernetes.io/monitor: "true"
    tolerations:
      - key: node.instana.io/monitor
        operator: Equal
        effect: NoSchedule
        value: "true"
     
  2. Atualizar o operad Cassandra.

    helm upgrade --install cass-operator instana/cass-operator -n instana-cassandra --version=0.63.1 --set securityContext.runAsGroup=999 --set securityContext.runAsUser=999 --set image.registry=artifact-public.instana.io --set image.repository=self-hosted-images/3rd-party/operator/cass-operator --set image.tag=1.29.0_v0.39.0 --set imagePullSecrets[0].name=instana-registry --set appVersion=1.29.0 --set imageConfig.systemLogger=artifact-public.instana.io/self-hosted-images/3rd-party/datastore/system-logger:1.26.0_v0.22.0 --set imageConfig.k8ssandraClient=artifact-public.instana.io/self-hosted-images/3rd-party/datastore/k8ssandra-client:0.8.12_v0.33.0 -f cass_values.yaml
     
  3. Atualize o Cassandra executando o seguinte comando para corrigir a configuração do Cassandra.

    kubectl patch cassandradatacenter cassandra -n instana-cassandra --type=merge --patch '
    spec:
      serverImage: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cassandra:4.1.10_v0.41.0
      systemLoggerImage: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/system-logger:1.26.0_v0.22.0
      0.8.12_v0.33.0
      serverVersion: "4.1.10"
    '
     
  4. Conclua as etapas em Verificação de Cassandra (online e offline).

Atualizando o Cassandra offline

Se você ainda não baixou as imagens do Cassandra do repositório 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/cass-operator:1.29.0_v0.39.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/system-logger:1.26.0_v0.22.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/k8ssandra-client:0.8.12_v0.33.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cassandra:4.1.10_v0.41.0
         

Conclua as seguintes etapas no seu host Instana.

  1. Reetiquete as imagens no seu registro interno de imagens.

    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/cass-operator:1.29.0_v0.39.0 <internal-image-registry>/operator/cass-operator:1.29.0_v0.39.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/system-logger:1.26.0_v0.22.0 <internal-image-registry>/datastore/system-logger:1.26.0_v0.22.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/k8ssandra-client:0.8.12_v0.33.0 <internal-image-registry>/datastore/k8ssandra-client:0.8.12_v0.33.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/cassandra:4.1.10_v0.41.0 <internal-image-registry>/datastore/cassandra:4.1.10_v0.41.0
                   
  2. Envie as imagens para o seu registro interno de imagens no seu host bastion.

    docker push <internal-image-registry>/operator/cass-operator:0.63.1
    docker push <internal-image-registry>/datastore/system-logger:1.26.0_v0.22.0
    docker push <internal-image-registry>/datastore/k8ssandra-client:0.8.12_v0.33.0
    docker push <internal-image-registry>/datastore/cassandra:4.1.10_v0.41.0
                   
  3. Crie um arquivo cass_values.yaml para configurar restrições e tolerâncias.

    nodeSelector:
      node-role.kubernetes.io/monitor: "true"
    tolerations:
      - key: node.instana.io/monitor
        operator: Equal
        effect: NoSchedule
        value: "true"
     
  4. Atualizar o operad Cassandra.

    helm upgrade --install cass-operator cass-operator-0.63.1.tgz -n instana-cassandra --version=0.63.1 --set securityContext.runAsGroup=999 --set securityContext.runAsUser=999 --set image.registry=<internal-image-registry> --set image.repository=operator/cass-operator --set image.tag=1.29.0_v0.39.0 --set imagePullSecrets[0].name=instana-registry --set appVersion=1.29.0 --set imageConfig.systemLogger=<internal-image-registry>/datastore/system-logger:1.26.0_v0.22.0 --set imageConfig.k8ssandraClient=<internal-image-registry>/datastore/k8ssandra-client:0.8.12_v0.33.0 -f cass_values.yaml
     
  5. Atualize o Cassandra executando o seguinte comando para corrigir a configuração do Cassandra.

    kubectl patch cassandradatacenter cassandra -n instana-cassandra --type=merge --patch '
    spec:
      serverImage: <internal-image-registry>/self-hosted-images/3rd-party/datastore/cassandra:4.1.10_v0.41.0
      systemLoggerImage: <internal-image-registry>/self-hosted-images/3rd-party/datastore/system-logger:1.26.0_v0.22.0
      serverVersion: "4.1.10"
    '
     
  6. Conclua as etapas em Verificação de Cassandra (online e offline).

Verificando Cassandra (online e offline)

  1. Verifique a implantação do armazenamento de dados do Cassandra.

    kubectl get all -n instana-cassandra
     
  2. Se a atualização do banco de dados do Cassandra for concluída com sucesso, o resultado do comando poderá ser semelhante à saída a seguir:

    NAME                                  READY   STATUS    RESTARTS   AGE
    pod/cass-operator-57dcc8884f-92knc    1/1     Running   0          36m
    pod/instana-cassandra-default-sts-0   2/2     Running   0          26m
    pod/instana-cassandra-default-sts-1   2/2     Running   0          26m
    pod/instana-cassandra-default-sts-2   2/2     Running   0          26m
    
    NAME                                                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                        AGE
    service/cass-operator-webhook-service               ClusterIP   192.168.1.55   <none>        443/TCP                                        36m
    service/instana-cassandra-additional-seed-service   ClusterIP   None           <none>        <none>                                         26m
    service/instana-cassandra-all-pods-service          ClusterIP   None           <none>        9042/TCP,8080/TCP,9103/TCP,9000/TCP            26m
    service/instana-cassandra-service                   ClusterIP   None           <none>        9042/TCP,9142/TCP,8080/TCP,9103/TCP,9000/TCP   26m
    service/instana-seed-service                        ClusterIP   None           <none>        <none>                                         26m
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/cass-operator   1/1     1            1           36m
    
    NAME                                       DESIRED   CURRENT   READY   AGE
    replicaset.apps/cass-operator-57dcc8884f   1         1         1       36m
    
    NAME                                             READY   AGE
    statefulset.apps/instana-cassandra-default-sts   3/3     26m
     
  3. Certifique-se de que os pods estejam agendados nos nós desejados.

    kubectl get pods -n instana-cassandra -o wide
     

    O exemplo a seguir mostra um resultado de saída.

    NAME                              READY   STATUS    RESTARTS   AGE    IP              NODE                                   NOMINATED NODE   READINESS GATES
    cass-operator-778bf546b6-gmdt6    1/1     Running   0          5d1h   10.254.20.182   worker0.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-cassandra-default-sts-0   2/2     Running   0          33h    10.254.20.187   worker1.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-cassandra-default-sts-1   2/2     Running   0          33h    10.254.24.102   worker2.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-cassandra-default-sts-2   2/2     Running   0          33h    10.254.16.138   worker3.instana-odf5.cp.fyre.ibm.com   <none>           <none>