Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Migrando do StackState 6.x para o SUSE Observability

Devido à renomeação do produto e também às mudanças drásticas no formato dos dados de topologia, não é possível fazer upgrade do StackState para o SUSE Observability através de um comando padrão de upgrade do Helm. Este guia de migração ajudará você a configurar o SUSE Observability exatamente da mesma forma que o StackState.

O SUSE Observability será uma nova instalação, sem os dados históricos já existentes. Opcionalmente os dados históricos podem ser mantidos acessíveis até que o SUSE Observability tenha acumulado um histórico suficiente. Este guia abrange ambos os cenários.

Dependendo do cenário escolhido, os passos para migrar são diferentes. Executar lado a lado é um pouco mais complicado e exigirá mais recursos. Os passos gerais, aplicáveis a ambos os cenários, são:

  1. Instale a versão mais recente do StackState 6.x

  2. Crie e baixe um backup de configuração

  3. Instale e configure o SUSE Observability, passos específicos do cenário

  4. Atualize a configuração dos coletores do Open Telemetry

  5. Migre o agente

Ao longo deste guia, todos os exemplos assumem a seguinte configuração, personalize os comandos para corresponder à sua configuração exata:

  • O cluster Kubernetes é acessado usando um contexto chamado observability

  • O StackState está instalado no namespace stackstate

  • O SUSE Observability será instalado no namespace suse-observability

Instale a versão mais recente do StackState 6.x

Apenas a versão mais recente do StackState 6.x possui um backup de configuração que contém toda a configuração em um formato compatível com o SUSE Observability. Por favor, certifique-se de que você tenha a versão mais recente instalada executando helm list --namespace stackstate (use o namespace onde o StackState está instalado):

  • A versão do chart do Helm deve ser 1.12.1

  • A versão do aplicativo deve ser 6.0.0-snapshot.20241023094532-stackstate-6.x-7be52ad

Se você não tiver essa versão, por favor, faça o upgrade primeiro seguindo os passos padrão de upgrade.

Crie um backup da configuração e faça o download do backup

Primeiro, criamos um backup da configuração do StackState, após isso você não deve mais fazer alterações na configuração do StackState (elas não serão transferidas para o SUSE Observability). Para fazer isso, familiarize-se primeiro com o backup da configuração e obtenha os scripts necessários usando a documentação de backup de configuração para StackState 6.x.

Do diretório restore que contém os scripts, execute estes comandos:

  1. Defina o contexto e o namespace ativos:

      kubectl config use-context observability
      kubectl config set-context --current --namespace=stackstate
  2. Crie um backup (isso exigirá 1Gi de memória e 1 núcleo no cluster), isso pode levar um tempo para criar um job do Kubernetes e iniciar o pod:

     ./backup-configuration-now.sh
  3. Na saída do comando, você verá o nome do arquivo para o backup, algo como sts-backup-20241024-1423.sty. Copie o nome do arquivo e use-o para baixar o backup:

    ./download-configuration-backup.sh sts-backup-20241023-1423.sty

Agora você deve ter o arquivo de backup da configuração no seu computador.

Instale e configure o SUSE Observability

É aqui que as 2 opções são diferentes. Siga as instruções para o seu cenário preferido. Escolha uma das:

Substituir o StackState

Desinstalar o StackState

Desinstalar o StackState antes de instalar o SUSE Observability tem 2 vantagens, antes de tudo, libera recursos no cluster, então não são necessários nós temporários extras. Em segundo lugar, remove a configuração de ingress para o StackState, liberando a URL do StackState para ser reutilizada pelo SUSE Observability. A única desvantagem é que haverá um período, a partir deste ponto até a configuração do SUSE Observability, em que você não terá monitoramento disponível com o StackState nem com o SUSE Observability.

Desinstalar o StackState também removerá seus dados históricos (topologia e todos os outros dados de telemetria também). Para desinstalar o StackState, siga a documentação de desinstalação.

Instalar o SUSE Observability

Instale o SUSE Observability em um namespace diferente do StackState para evitar conflitos. O recomendado é usar o mesmo namespace que na documentação, suse-observability.

A maior mudança para a instalação é que agora há suporte para arquivos de controle, por favor, selecione o arquivo de controle que corresponde ao seu cluster observado usando os requirements e use-o para gerar os valores conforme documentado no guia de instalação. Valores personalizados do Helm para o StackState são compatíveis com o SUSE Observability. No entanto, os valores para personalizar recursos devem ser removidos em favor dos novos perfis, manteremos esses em um arquivo chamado custom-values-no-resources.yaml. Você pode usar as mesmas configurações de ingress, de modo que o SUSE Observability efetivamente substituirá o StackState do ponto de vista do usuário e do agente.

Para instalar o SUSE Observability, siga o guia de instalação com algumas pequenas modificações na geração de valores para realizar a migração:

  • use o arquivo de controle selecionado que corresponde ao seu ambiente e seus valores personalizados (atualizados).

  • obtenha o global.receiverApiKey dos valores do StackState e forneça-o como argumento extra para a geração de valores

  • para a URL base que deve ser fornecida, usamos a mesma URL que a instalação atual do StackState: https://stackstate.demo.stackstate.io

Assim, a etapa de geração de valores fica assim (usando nosso exemplo novamente, com o menor arquivo de controle):

export VALUES_DIR=.
helm template \
  --set license='<your license>' \
  --set receiverApiKey='our-old-api-key' \
  --set baseUrl='https://stackstate.demo.stackstate.io' \
  --set sizing.profile='10-nonha' \
  suse-observability-values \
  suse-observability/suse-observability-values --output-dir $VALUES_DIR

O comando de instalação do Helm é o mesmo que na documentação de instalação, com a opção de incluir o arquivo de valores custom-values-no-resources.yaml se você tiver algum. Além disso, certifique-se de incluir os valores de configuração de ingress, isso pode ser o mesmo que foi usado para o StackState. No exemplo, usaremos:

helm upgrade \
  --install \
  --namespace suse-observability \
  --values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
  --values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
  --values $VALUES_DIR/suse-observability-values/templates/ingress.yaml \
suse-observability \
suse-observability/suse-observability

A instalação gerará por padrão uma nova senha de administrador. Se você estiver usando a autenticação padrão e quiser manter a mesma senha de administrador de antes, precisará especificá-la na etapa de geração de valores (ou editá-la após gerar os valores).

Restaure o backup da configuração

Agora que o SUSE Observability está instalado, o backup da configuração pode ser restaurado. O Helm chart do SUSE Observability vem com um conjunto semelhante de ferramentas de backup documentadas aqui. Essas não são as mesmas do StackState 6.x, então certifique-se de obter os scripts do diretório restore do Helm chart do SUSE Observability para restaurar o backup.

Do diretório restore do Helm chart do SUSE Observability, execute estes comandos para restaurar o backup:

  1. Defina o contexto e o namespace ativos:

      kubectl config use-context observability
      kubectl config set-context --current --namespace=suse-observability
  2. Carregue o arquivo de backup criado anteriormente, neste caso sts-backup-20241024-1423.sty (certifique-se de usar o caminho completo, se necessário):

    ./upload-configuration-backup.sh sts-backup-20241024-1423.sty
  3. Restaure o backup (isso exigirá 1Gi de memória e 1 núcleo no cluster), isso pode levar um tempo para criar um job do Kubernetes e iniciar o pod:

     ./restore-configuration-backup.sh sts-backup-20241024-1423.sty

    Certifique-se de responder yes para confirmar que a remoção de todos os dados está ok.

  4. Escale todos os deployments de volta para cima:

    ./scale-up.sh

Agora o SUSE Observability tem a mesma configuração que o StackState e estamos prontos para começar a usá-lo. Observe que, como a mesma URL é usada, pode ser necessário atualizar o navegador na primeira vez.

Execute lado a lado

Neste cenário, o SUSE Observability irá ingerir novos dados e é responsável por executar monitores e enviar notificações. O StackState oferecerá apenas acesso aos dados históricos.

Em algum momento, o tráfego precisará ser transferido do StackState para o SUSE Observability. A solução que limita o impacto em seus usuários e nos agentes instalados é configurar o SUSE Observability com a URL originalmente usada pelo StackState. Este guia reutilizará a URL do StackState (stackstate.demo.stackstate.io), enquanto o "antigo" StackState estará acessível sob uma nova URL stackstate-old.demo.stackstate.io. Ao usar um provedor OIDC para autenticação, a URL stackstate-old precisará ser adicionada/atualizada na configuração do provedor OIDC e na configuração do StackState.

Também é possível instalar o SUSE Observability sob uma nova URL; nesse caso, você precisará atualizar o agente e os coletores Open Telemetry para usar a nova URL ou usar outro método de redirecionamento do tráfego.

Para resumir, antes da migração, a configuração é o StackState em execução no namespace stackstate com a URL https://stackstate.demo.stackstate.io. Isso será migrado para:

  • SUSE Observability no namespace suse-observability com a URL stackstate.demo.stackstate.io, esta será a nova instância ativa

  • StackState no namespace stackstate com a URL https://stackstate-old.demo.stackstate.io, isso terá apenas dados históricos

Instalar o SUSE Observability

Instale o SUSE Observability em um namespace diferente do StackState para evitar conflitos. Recomenda-se usar o mesmo namespace que consta na documentação, suse-observability.

A maior mudança para a instalação é que agora há suporte para perfis, por favor, selecione o perfil que corresponde ao seu cluster observado usando os requisitos e use-o para gerar os valores conforme documentado no guia de instalação. Valores personalizados do Helm para o StackState são compatíveis com o SUSE Observability. No entanto, os valores para personalizar recursos devem ser removidos em favor dos novos perfis; manteremos esses valores em um arquivo chamado custom-values-no-resources.yaml. Além disso, exclua a configuração de ingress da instalação do SUSE Observability por enquanto.

Para instalar o SUSE Observability, siga o guia de instalação com algumas pequenas modificações na geração de valores para realizar a migração:

  • use o perfil selecionado que corresponde ao seu ambiente e seus valores personalizados (atualizados).

  • obtenha o global.receiverApiKey dos valores do StackState e forneça-o como argumento extra para a geração de valores

  • para a URL base que deve ser fornecida, usamos a mesma URL que a instalação atual do StackState: https://stackstate.demo.stackstate.io

Assim, a etapa de geração de valores fica assim (usando nosso exemplo novamente, com o menor perfil):

export VALUES_DIR=.
helm template \
  --set license='<your license>' \
  --set receiverApiKey='our-old-api-key' \
  --set baseUrl='https://stackstate.demo.stackstate.io' \
  --set sizing.profile='10-nonha' \
  suse-observability-values \
  suse-observability/suse-observability-values --output-dir $VALUES_DIR

O comando de instalação do Helm é o mesmo que na documentação de instalação, com a opção de incluir o arquivo de valores custom-values-no-resources.yaml se você tiver algum.

A instalação gerará por padrão uma nova senha de administrador. Se você estiver usando a autenticação padrão e quiser manter a mesma senha de administrador de antes, precisará especificá-la na etapa de geração de valores (ou editá-la após gerar os valores).

Restaure o backup da configuração

Agora que o SUSE Observability está instalado, o backup da configuração pode ser restaurado. O chart Helm do SUSE Observability vem com um conjunto semelhante de ferramentas de backup documentadas aqui. Essas não são as mesmas do StackState 6.x, então certifique-se de obter os scripts do diretório restore do Helm chart do SUSE Observability para restaurar o backup.

Do diretório restore do Helm chart do SUSE Observability, execute estes comandos para restaurar o backup:

  1. Defina o contexto e o namespace ativos:

      kubectl config use-context observability
      kubectl config set-context --current --namespace=suse-observability
  2. Carregue o arquivo de backup criado anteriormente, neste caso sts-backup-20241024-1423.sty (certifique-se de usar o caminho completo, se necessário):

    ./upload-configuration-backup.sh sts-backup-20241024-1423.sty
  3. Restaure o backup (isso exigirá 1Gi de memória e 1 núcleo no cluster), isso pode levar um tempo para criar um trabalho Kubernetes e iniciar o pod:

     ./restore-configuration-backup.sh sts-backup-20241024-1423.sty

    Verifique se você está no namespace suse-observability e não mais no namespace StackState, somente então responda yes para confirmar que a remoção de todos os dados está correta.

  4. Escale novamente todas as implantações:

    ./scale-up.sh

Agora o SUSE Observability tem a mesma configuração que o StackState e estamos prontos para começar a usá-lo.

Prepare-se para reduzir a escala do StackState.

Para garantir que nada mais mude na antiga configuração do "StackState" e também para reduzir seu uso de recursos, um número de implantações do StackState deve ser reduzido para 0 réplicas. A melhor maneira de fazer isso é através dos valores do Helm, assim qualquer outra alteração de configuração não aumentará acidentalmente algumas das implantações novamente.

Crie um novo arquivo scaled-down.yaml e armazene-o ao lado do seu values.yaml do StackState (ou edite seu values.yaml existente para o StackState para incluir ou atualizar essas chaves):

common:
  deployment:
    replicaCount: 0
  statefulset:
    replicaCount: 0
anomaly-detection:
  enabled: false
backup:
  enabled: false
stackstate:
  components:
    correlate:
      replicaCount: 0
    checks:
      replicaCount: 0
    healthSync:
      replicaCount: 0
    e2es:
      replicaCount: 0
    notification:
      replicaCount: 0
    receiver:
      replicaCount: 0
    state:
      replicaCount: 0
    sync:
      replicaCount: 0
    slicing:
      replicaCount: 0
    vmagent:
      replicaCount: 0
  features:
    server:
      split: true
opentelemetry:
  enabled: false

Este arquivo será usado ao alterar o ingress para o StackState. Quando nenhum agente nem dados de Open Telemetry forem mais recebidos, esses serviços do StackState não serão mais necessários.

Redirecionar o tráfego

Redirecionar o tráfego mudará tanto o tráfego do agente quanto os usuários do StackState para o SUSE Observability. Para fazer isso, são necessários 2 passos: primeiro, mude o StackState para uma nova URL, depois configure o ingress do SUSE Observability para usar a URL original do StackState. Entre esses passos, o SUSE Observability/StackState estará temporariamente inacessível, mas os agentes irão armazenar em cache os dados e enviá-los quando puderem se conectar novamente.

  1. Pegue a configuração de ingress do StackState e copie-a para os valores que você tem para o SUSE Observability, ou faça uma cópia em um arquivo de valores ingress.yaml separado, ao lado do baseConfig_values.yaml e sizing_values.yaml gerados.

  2. Atualize os valores de ingress para o StackState para usar uma URL diferente, aqui mudamos de stackstate para stackstate-old:

     ingress:
       annotations:
         nginx.ingress.kubernetes.io/proxy-body-size: 100m
       enabled: true
       hosts:
         - host: "stackstate-old.demo.stackstate.io"
       tls:
         - hosts:
             - "stackstate-old.demo.stackstate.io"
           secretName: tls-secret-stackstate-old
    
     opentelemetry-collector:
       ingress:
         enabled: true
         annotations:
           nginx.ingress.kubernetes.io/proxy-body-size: "50m"
           nginx.ingress.kubernetes.io/backend-protocol: GRPC
         hosts:
           - host: otlp-stackstate-old.demo.stackstate.io
             paths:
               - path: /
                 pathType: Prefix
                 port: 4317
         tls:
           - hosts:
               - otlp-stackstate-old.demo.stackstate.io
             secretName: tls-secret-stackstate-old-otlp
  3. Edite o values.yaml original do StackState e atualize o valor stackstate.baseUrl para também usar a nova URL (neste caso https://stackstate-old.demo.stackstate.io).

  4. Execute o helm upgrade para o StackState e inclua a configuração de ingress atualizada para que ele comece a usar o ingress stackstate-old.demo.stackstate.io. Inclua também os valores scaled-down.yaml da etapa anterior e certifique-se de incluir todos os arquivos de valores usados durante a instalação do StackState:

      helm upgrade \
       --install \
       --namespace stackstate \
       --values stackstate-values/values.yaml \
       --values stackstate-values/stackstate-ingress.yaml \
       --values stackstate-values/scaled-down.yaml \
     stackstate \
     stackstate/stackstate-k8s
  5. Execute o helm upgrade para o SUSE Observability, para começar a usar a URL original stackstate.demo.stackstate.io (certifique-se de incluir todos os arquivos de valores usados durante a instalação do SUSE Observability, mas agora também inclua o ingress.yaml):

     export VALUES_DIR=.
     helm upgrade \
       --install \
       --namespace suse-observability \
       --values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
       --values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
       --values ingress.yaml \
     suse-observability \
     suse-observability/suse-observability

Agora os usuários podem ir para https://stackstate.demo.stackstate.io para obter o SUSE Observability com todos os recursos familiares do StackState e dados em tempo real. Na primeira vez, os usuários podem precisar atualizar para forçar o carregamento do novo aplicativo.

Eles podem ir para https://stackstate-old.demo.stackstate.io para revisar dados históricos.

Desinstalar o StackState

Quando a instalação do StackState não for mais necessária, ela pode ser desinstalada usando o procedimento de desinstalação.

Atualize a configuração dos coletores do Open Telemetry

O SUSE Observability tem uma mudança em sua autenticação. O StackState usava um token de portador com o esquema StackState, mas o SUSE Observability usa o esquema SUSEObservability. Atualize os valores para seus Coletores Open Telemetry instalados para mudar de:

config:
  extensions:
    bearertokenauth:
      scheme: StackState
      token: "${env:API_KEY}"

para

config:
  extensions:
    bearertokenauth:
      scheme: SUSEObservability
      token: "${env:API_KEY}"

Use os valores atualizados para fazer upgrade dos coletores instalados com o comando helm upgrade, veja também implantando o Coletor Open Telemetry para mais detalhes.

Fazer upgrade de stackpacks

Navegue até https://your-stackstate-instance/#/stackpacks/ ou abra a visão geral dos StackPacks pelo menu principal. A partir daí, passe por todos os stackpacks instalados e clique no botão "Fazer upgrade" para obter a nova versão do stackpack do SUSE Observability.

Migrar agentes

A etapa final na migração para o SUSE Observability é atualizar todos os seus agentes instalados. Isso não precisa ser feito imediatamente, mas pode ser realizado em um momento conveniente para cada cluster específico, pois o SUSE Observability é compatível com o agente StackState.

Migrar é um processo fácil de 2 etapas:

  1. Desinstalar o agente StackState

  2. Instalar o agente SUSE Observability

É importante que o antigo agente seja desinstalado primeiro, porque não é possível executar ambos os agentes ao mesmo tempo. Desinstalar o agente em um cluster é feito assim:

helm uninstall -n stackstate stackstate-k8s-agent

Caso você tenha usado um namespace ou nome de release diferente, atualize o comando conforme necessário.

Navegue até https://your-stackstate-instance/#/stackpacks/kubernetes-v2. Encontre o cluster no qual você está atualizando o agente na lista de instâncias do StackPack e copie e execute o comando helm install para sua distribuição Kubernetes. Se você tiver valores personalizados, pode incluí-los sem modificação com um argumento --values; os valores do agente SUSE Observability usam a mesma nomenclatura que o agente StackState.