Atualizar o Apigee Hybrid para a versão 1.10

Este procedimento abrange a atualização da versão 1.9.x do Apigee Hybrid para a versão 1.10.5 do Apigee Hybrid e das versões anteriores do Hybrid 1.10.x para a versão 1.10.5.

Use os mesmos procedimentos para atualizações de versões secundárias (por exemplo, da versão 1.9 para a 1.10) e para atualizações de lançamentos de patches (por exemplo, da versão 1.10.0 para a 1.10.5).

Atualização para a versão 1.10.5: vista geral

Os procedimentos para atualizar o Apigee hybrid estão organizados nas seguintes secções:

  1. Prepare-se para a atualização.
  2. Instale a versão 1.10.5 do tempo de execução híbrido.

Pré-requisitos

Estas instruções de atualização pressupõem que tem a versão 1.9.x do Apigee hybrid instalada e quer atualizá-la para a versão 1.10.5. Se estiver a fazer a atualização a partir de uma versão anterior, consulte as instruções para atualizar o Apigee hybrid para a versão 1.9.

Prepare-se para atualizar para a versão 1.10

  1. Estas instruções usam a variável de ambiente APIGEECTL_HOME para o diretório no seu sistema de ficheiros onde instalou o apigeectl. Se necessário, altere o diretório para o diretório apigeectl e defina a variável com o seguinte comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. Faça uma cópia de segurança do diretório $APIGEECTL_HOME/ da versão 1.9. Por exemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. Faça uma cópia de segurança da base de dados Cassandra seguindo as instruções em Cópia de segurança e recuperação do Cassandra.

Atualize a versão do Kubernetes

Verifique a versão da sua plataforma Kubernetes e, se necessário, atualize-a para uma versão suportada pelo Hybrid 1.9 e pelo Hybrid 1.10. Siga a documentação da sua plataforma se precisar de ajuda.

Instale o tempo de execução híbrido 1.10.5

  1. Certifique-se de que está no diretório base híbrido (o diretório principal do diretório onde se encontra o ficheiro executável apigeectl):
    cd $APIGEECTL_HOME/..
  2. Transfira o pacote de lançamento para o seu sistema operativo através do seguinte comando. Certifique-se de que seleciona a sua plataforma na tabela seguinte:

    Linux

    Linux de 64 bits:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz

    Mac OS

    Mac 64 bits:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz

    Windows

    Windows de 64 bits:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
  3. Mude o nome do diretório apigeectl/ atual para um nome de diretório de cópia de segurança. Por exemplo:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. Extraia o conteúdo do ficheiro gzip transferido para o diretório de base híbrido. O diretório base híbrido é o diretório onde se encontra o diretório apigeectl-v1.9 com o nome alterado:

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. Por predefinição, o conteúdo do TAR é expandido para um diretório com a versão e a plataforma no respetivo nome. Por exemplo: ./apigeectl_1.10.5-xxxxxxx_linux_64. Mude o nome desse diretório para apigeectl através do seguinte comando:

    Linux

    mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
  6. Altere para o diretório apigeectl:
    cd ./apigeectl

    Este diretório é o apigeectldiretório inicial. É onde se encontra o comando executável apigeectl.

  7. Estas instruções usam a variável de ambiente $APIGEECTL_HOME para o diretório no seu sistema de ficheiros onde o utilitário apigeectl está instalado. Se necessário, altere o diretório para o diretório apigeectl e defina a variável com o seguinte comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Valide a versão do apigeectl com o comando version:
    ./apigeectl version
    Version: 1.10.5
  9. Crie um diretório hybrid-base-directory/hybrid-files e, de seguida, mova para o mesmo. O diretório hybrid-filesé onde se encontram os ficheiros de configuração, como o ficheiro de substituições, os certificados e as contas de serviço. Por exemplo:

    Linux

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Mac OS

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Windows

    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  10. Verifique se kubectl está definido para o contexto correto através do seguinte comando. O contexto atual deve ser definido para o cluster no qual está a atualizar o Apigee Hybrid.
    kubectl config get-contexts | grep \*
  11. No diretório hybrid-files:
    1. Atualize os seguintes links simbólicos para $APIGEECTL_HOME. Estes links permitem-lhe executar o comando apigeectl recém-instalado a partir do diretório hybrid-files:
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. Para verificar se os links simbólicos foram criados corretamente, execute o seguinte comando e certifique-se de que os caminhos dos links apontam para as localizações corretas:
      ls -l | grep ^l
  12. Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que o gráfico apigee-operator use a etiqueta correta, 1.10.5-hotfix.1:
      ao:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-operators"
          tag: "1.10.5-hotfix.1"
      
  13. Faça uma inicialização de teste para verificar se existem erros:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    Onde OVERRIDES_FILE é o nome do ficheiro de substituições, por exemplo, ./overrides/overrides.yaml.

  14. Se não houver erros, inicialize o Hybrid 1.10.5:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  15. Verifique o estado de inicialização:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Se for bem-sucedido, o resultado indica: All containers ready.

    kubectl describe apigeeds -n apigee

    No resultado, procure State: running.

  16. Verifique se existem erros com uma execução de teste do comando apply através do sinalizador --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  17. Se não houver erros, aplique as substituições. Selecione e siga as instruções para ambientes de produção ou ambientes de não produção, consoante a sua instalação.

    Produção

    Para ambientes de produção, atualize cada componente híbrido individualmente e verifique o estado do componente atualizado antes de avançar para o componente seguinte.

    1. Certifique-se de que está no diretório hybrid-files.
    2. Aplique as substituições para atualizar o Cassandra:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. Conclusão da verificação:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Avance para o passo seguinte apenas quando os pods estiverem prontos.

    4. Aplique as substituições para atualizar os componentes de telemetria e verifique a conclusão:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Apresente os componentes do Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Aplique as substituições para atualizar os componentes ao nível da organização (MART, Watcher e Apigee Connect) e verifique a conclusão:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. Aplique as substituições para atualizar os seus ambientes. Tem 2 opções:
      • Ambiente por ambiente: aplique as substituições a um ambiente de cada vez e verifique a conclusão. Repita este passo para cada ambiente:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        Em que ENV_NAME é o nome do ambiente que está a atualizar.

      • Todos os ambientes ao mesmo tempo: aplique as substituições a todos os ambientes de uma só vez e verifique a conclusão:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. Aplique as substituições para atualizar os componentes virtualhosts e verifique a conclusão:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Não prod

    Na maioria dos ambientes de não produção, demonstração ou experimentais, pode aplicar as substituições a todos os componentes de uma só vez. Se o seu ambiente de não produção for grande e complexo ou imitar de perto um ambiente de produção, é recomendável usar as instruções para atualizar ambientes de produção.

    1. Certifique-se de que está no diretório hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. Verifique o estado:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

Reverter uma atualização

Siga estes passos para reverter uma atualização anterior:

  1. Limpe as tarefas concluídas para o espaço de nomes de tempo de execução híbrido, em que NAMESPACE é o espaço de nomes especificado no ficheiro de substituições, se tiver especificado um espaço de nomes. Caso contrário, o espaço de nomes predefinido é apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Limpe as tarefas concluídas para o espaço de nomes apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Altere a variável APIGEECTL_HOME para apontar para o diretório que contém a versão anterior de apigeectl. Por exemplo:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. No diretório raiz da instalação para a qual quer reverter, execute o comando apigeectl apply, verifique o estado dos seus pods e, em seguida, execute o comando apigeectl init. Certifique-se de que usa o ficheiro de substituições original para a versão para a qual quer reverter:
    1. No diretório hybrid-files, execute apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      Em que ORIGINAL_OVERRIDES_FILE é o caminho relativo e o nome do ficheiro das substituições para a instalação híbrida da versão anterior, por exemplo, ./overrides/overrides1.9.yaml.

    2. Verifique o estado dos seus pods:
      kubectl -n NAMESPACE get pods

      Onde NAMESPACE é o espaço de nomes híbrido do Apigee.

    3. Verifique o estado de apigeeds:
      kubectl describe apigeeds -n apigee

      O resultado deve ter um aspeto semelhante ao seguinte:

      Status:
        Cassandra Data Replication:
        Cassandra Pod Ips:
          10.8.2.204
        Cassandra Ready Replicas:  1
        Components:
          Cassandra:
            Last Successfully Released Version:
              Revision:  v1-f8aa9a82b9f69613
              Version:   v1
            Replicas:
              Available:  1
              Ready:      1
              Total:      1
              Updated:    1
            State:        running
        Scaling:
          In Progress:         false
          Operation:
          Requested Replicas:  0
        State:                 running

      Avance para o passo seguinte apenas quando o apigeeds pod estiver em execução.

    4. Execute o seguinte comando para tomar nota dos novos valores de contagem de réplicas do processador de mensagens após a atualização. Se estes valores não corresponderem aos que definiu anteriormente, altere os valores no ficheiro de substituições para corresponderem à sua configuração anterior.
      apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2

      O resultado deve ter um aspeto semelhante ao seguinte:

            autoScaler:
              minReplicas: 2
              maxReplicas: 10
    5. Corrida apigeectl init:
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE