Atualizar o Apigee Hybrid para a versão 1.11

Este procedimento abrange a atualização da versão 1.10.x do Apigee Hybrid para a versão 1.11.2 do Apigee Hybrid e de lançamentos anteriores do Hybrid 1.11.x para a versão 1.11.2.

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

Se estiver a atualizar a partir da versão 1.9 ou anterior do Apigee Hybrid, tem de atualizar primeiro para a versão 1.10 antes de atualizar para a versão 1.11.2. Consulte as instruções para atualizar o Apigee Hybrid para a versão 1.10.

Vista geral da atualização para a versão 1.11.2

Verificações de instanciação de classes mais rigorosas no Hybrid 1.11.2-Hotfix.3

A partir do Apigee hybrid 1.11.2-Hotfix.3, a política JavaCallout inclui agora segurança adicional durante a instanciação da classe Java. A medida de segurança melhorada impede a implementação de políticas que tentam direta ou indiretamente ações que requerem autorizações não permitidas.

Na maioria dos casos, as políticas existentes continuam a funcionar como esperado, sem problemas. No entanto, existe a possibilidade de as políticas que dependem de bibliotecas de terceiros ou que têm código personalizado que aciona indiretamente operações que requerem autorizações elevadas serem afetadas.

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.11.2 do tempo de execução híbrido.

Pré-requisitos

Estas instruções de atualização pressupõem que tem a versão 1.10.x do Apigee Hybrid instalada e quer atualizá-la para a versão 1.11.2. 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.10.

Gráficos Helm e apigeectl

Na versão 1.11, pode optar por instalar e gerir o Apigee Hybrid com gráficos Helm ou apigeectl. O Apigee recomenda a utilização do Helm para gerir a sua instalação.

Migrar para a versão 1.11 com o Helm a partir da versão 1.10 com o apigeectl

Para atualizar para o Apigee Hybrid v1.11 gerido pelo Helm a partir de uma instalação do Hybrid v1.10 gerida com apigeectl:

  1. Primeiro, migre a instalação do Helm v1.10 seguindo as instruções em Migre o Apigee Hybrid para gráficos do Helm a partir de apigeectl.
  2. Siga as instruções para os gráficos Helm abaixo para atualizar a sua instalação.

Prepare-se para atualizar para a versão 1.11

Leme

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

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Mac OS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. Faça uma cópia de segurança do diretório $APIGEE_HELM_CHARTS_HOME/ da versão 1.10. Pode usar qualquer processo de cópia de segurança. Por exemplo, pode criar um ficheiro tar de todo o diretório com:
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.10-backup.tar.gz $APIGEE_HELM_CHARTS_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.
  4. Se estiver a usar ficheiros de certificado de serviço (.json) nas suas substituições para autenticar contas de serviço, certifique-se de que os ficheiros de certificado de serviço residem no diretório do gráfico Helm correto. Os gráficos Helm não podem ler ficheiros fora do diretório de cada gráfico.

    Este passo não é necessário se estiver a usar segredos do Kubernetes ou a identidade de carga de trabalho para autenticar contas de serviço.

    A tabela seguinte mostra o destino de cada ficheiro de conta de serviço, consoante o seu tipo de instalação:

    Prod

    Conta de serviço Nome do ficheiro predefinido Diretório de gráficos Helm
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    Não prod

    Faça uma cópia do ficheiro de conta de serviço apigee-non-prod em cada um dos seguintes diretórios:

    Conta de serviço Nome do ficheiro predefinido Diretórios de gráficos Helm
    apigee-non-prod PROJECT_ID-apigee-non-prod.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    $APIGEE_HELM_CHARTS_HOME/apigee-org/
    $APIGEE_HELM_CHARTS_HOME/apigee-env/
  5. Certifique-se de que os ficheiros de chave e certificado TLS (.crt, .key e/ou .pem) residem no diretório $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.

apigeectl

Os exemplos nestas instruções usam a seguinte estrutura de diretórios. A sua instalação pode ser diferente. Ajuste as instruções à estrutura da sua instalação.

hybrid-v1.11-root-directory/
└── apigeectl/
    └── config/
    └── plugins/
    └── templates/
    └── tools/
└── hybrid-files/
    └── overrides/
    └── service-accounts/
    └── certs/
hybrid-v1.10-root-directory/
  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.10. Por exemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-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 plataforma Kubernetes e, se necessário, atualize-a para uma versão suportada pelo Hybrid 1.10 e pelo Hybrid 1.11. Siga a documentação da sua plataforma se precisar de ajuda.

Instale o runtime híbrido 1.11.2

Leme

Prepare-se para a atualização dos gráficos Helm

  1. Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que os gráficos apigee-operator e apigee-env usem a etiqueta correta, 1.11.2-hotfix.3:
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.3"
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulte as notas de lançamento do Apigee 1.11.2-hotfix.3.

  2. Extraia os gráficos Helm do Apigee.

    Os gráficos do Apigee Hybrid estão alojados no Google Artifact Registry:

    oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts

    Usando o comando pull, copie todos os gráficos Helm do Apigee hybrid para o seu armazenamento local com o seguinte comando:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.11.2
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  3. Instale o cert-manager, se necessário.

    Se precisar de atualizar a versão do cert-manager, instale a nova versão com o seguinte comando:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
    
  4. Instale as CRDs do Apigee atualizadas:
    1. Use a funcionalidade de teste de execução kubectl executando o seguinte comando:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
      
    2. Depois de fazer a validação com o comando de teste, execute o seguinte comando:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
      
    3. Valide a instalação com o comando kubectl get crds:
      kubectl get crds | grep apigee

      O resultado deve ter um aspeto semelhante ao seguinte:

      apigeedatastores.apigee.cloud.google.com                    2023-10-09T14:48:30Z
      apigeedeployments.apigee.cloud.google.com                   2023-10-09T14:48:30Z
      apigeeenvironments.apigee.cloud.google.com                  2023-10-09T14:48:31Z
      apigeeissues.apigee.cloud.google.com                        2023-10-09T14:48:31Z
      apigeeorganizations.apigee.cloud.google.com                 2023-10-09T14:48:32Z
      apigeeredis.apigee.cloud.google.com                         2023-10-09T14:48:33Z
      apigeerouteconfigs.apigee.cloud.google.com                  2023-10-09T14:48:33Z
      apigeeroutes.apigee.cloud.google.com                        2023-10-09T14:48:33Z
      apigeetelemetries.apigee.cloud.google.com                   2023-10-09T14:48:34Z
      cassandradatareplications.apigee.cloud.google.com           2023-10-09T14:48:35Z
      
  5. Verifique as etiquetas nos nós do cluster. Por predefinição, o Apigee agenda pods de dados em nós com a etiqueta cloud.google.com/gke-nodepool=apigee-data e os pods de tempo de execução são agendados em nós com a etiqueta cloud.google.com/gke-nodepool=apigee-runtime. Pode personalizar as etiquetas do conjunto de nós no ficheiro overrides.yaml.

    Para mais informações, consulte o artigo Configurar pools de nós dedicados.

Instale os gráficos Helm do Apigee Hybrid

  1. Caso contrário, navegue para o diretório APIGEE_HELM_CHARTS_HOME. Execute os seguintes comandos a partir desse diretório.
  2. Atualize o operador/controlador do Apigee:

    Execução de ensaio:

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE
    

    Valide a instalação do operador do Apigee:

    helm ls -n apigee-system
    
    NAME           NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    operator    apigee-system   3               2023-06-26 00:42:44.492009 -0800 PST    deployed        apigee-operator-1.11.2   1.11.2

    Verifique se está em funcionamento, verificando a respetiva disponibilidade:

    kubectl -n apigee-system get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
  3. Atualize o repositório de dados do Apigee:

    Execução de ensaio:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifique se o apigeedatastore está em funcionamento verificando o respetivo estado:

    kubectl -n apigee get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  4. Atualize a telemetria do Apigee:

    Execução de ensaio:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifique se está a funcionar corretamente verificando o respetivo estado:

    kubectl -n apigee get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
  5. Atualize o Redis do Apigee:

    Execução de ensaio:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifique se está a funcionar corretamente verificando o respetivo estado:

    kubectl -n apigee get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  6. Atualize o gestor de entrada do Apigee:

    Execução de ensaio:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifique se está em funcionamento, verificando a respetiva disponibilidade:

    kubectl -n apigee get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
  7. Atualize a organização do Apigee:

    Execução de ensaio:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Atualize o gráfico:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifique se está em funcionamento consultando o estado da organização respetiva:

    kubectl -n apigee get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
  8. Atualize o ambiente.

    Tem de instalar um ambiente de cada vez. Especifique o ambiente com --set env=ENV_NAME:

    Execução de ensaio:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
    
    • ENV_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico apigee-env. No híbrido v1.10, normalmente é apigee-env-ENV_NAME. No Hybrid v1.11 e mais recente, normalmente, é ENV_NAME.
    • ENV_NAME é o nome do ambiente que está a atualizar.
    • OVERRIDES_FILE é o seu novo ficheiro de substituições para a versão 1.11.2

    Atualize o gráfico:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    Verifique se está em funcionamento consultando o estado do ambiente respetivo:

    kubectl -n apigee get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
  9. Atualize os grupos de ambientes (virtualhosts).
    1. Tem de atualizar um grupo de ambientes (virtualhost) de cada vez. Especifique o grupo do ambiente com --set envgroup=ENV_GROUP_NAME. Repita os seguintes comandos para cada grupo de ambiente mencionado no ficheiro overrides.yaml:

      Execução de ensaio:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run
      

      ENV_GROUP_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico apigee-virtualhost. No híbrido v1.10, normalmente é apigee-virtualhost-ENV_GROUP_NAME. No Hybrid v1.11 e mais recente, é normalmente ENV_GROUP_NAME.

      Atualize o gráfico:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. Verifique o estado do ApigeeRoute (AR).

      A instalação do virtualhosts cria o ApigeeRouteConfig (ARC), que cria internamente o ApigeeRoute (AR) assim que o monitor do Apigee extrai os detalhes relacionados com o grupo de ambientes do plano de controlo. Por conseguinte, verifique se o estado do AR correspondente está em execução:

      kubectl -n apigee get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      kubectl -n apigee get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d

Instale a versão 1.11.2-hotfix.3

  1. Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que o runtime use a etiqueta correta, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulte as notas de lançamento do Apigee 1.11.2-hotfix.3.

  2. Atualize o gráfico apigee-env com o comando helm upgrade e o seu ficheiro de substituições atual.

    Repita este procedimento para cada ambiente.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --namespace APIGEE_NAMESPACE \
      --set env ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE 

apigeectl

  1. Armazene o número da versão mais recente numa variável através do seguinte comando:

    Linux

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)

    Mac OS

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)

    Windows

    for /f "tokens=*" %a in ('curl -s ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^
    do set VERSION=%a
  2. Verifique se a variável foi preenchida com um número de versão através do seguinte comando. Se quiser usar uma versão diferente, pode guardá-la numa variável de ambiente.
    echo $VERSION

    Deve ver a versão híbrida mais recente do Apigee:

      1.11.2
  3. 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/..
  4. 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/$VERSION/apigeectl_linux_64.tar.gz

    Mac OS

    Mac 64 bits:

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

    Windows

    Windows de 64 bits:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
  5. 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.10/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.10 
  6. 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.10 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 ./
  7. 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.11.2-xxxxxxx_linux_64. Mude o nome desse diretório para apigeectl através do seguinte comando:

    Linux

    mv apigeectl_1.11.2-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.11.2-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.11.2-xxxxxxx_windows_64 apigeectl
  8. Altere para o diretório apigeectl:
    cd ./apigeectl

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

  9. 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%
  10. Valide a versão do apigeectl com o comando version:
    ./apigeectl version
    Version: 1.11.2
  11. 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
  12. 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 \*
  13. 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
  14. 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.

  15. Se não existirem erros, inicialize o híbrido 1.11.2:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  16. 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.

  17. 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
  18. 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

Instale a versão 1.11.2-hotfix.3

  1. Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que o runtime use a etiqueta correta, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulte as notas de lançamento do Apigee 1.11.2-hotfix.3.

  2. Instale a correção rápida com apigeectl init através do ficheiro de substituições atualizado.

    Execução de ensaio:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
    

    Inicializar:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE
    
  3. Aplique a correção rápida com o apigeectl apply.

    Execução de ensaio:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs --dry-run=client
    

    Aplicar:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
    

Use este procedimento para validar o comportamento da política JavaCallout após a atualização para o Hybrid 1.11.2-hotfix.3.

  1. Verifique se os ficheiros JAR Java pedem autorizações desnecessárias.

    Após a implementação da política, verifique os registos de tempo de execução para ver se a seguinte mensagem de registo está presente: "Failed to load and initialize class ...". Se observar esta mensagem, sugere que o JAR implementado pediu autorizações desnecessárias. Para resolver este problema, investigue o código Java e atualize o ficheiro JAR.

  2. Investigue e atualize o código Java.

    Reveja qualquer código Java (incluindo dependências) para identificar a causa de operações potencialmente não permitidas. Quando o encontrar, modifique o código-fonte conforme necessário.

  3. Teste as políticas com a verificação de segurança ativada.

    Num ambiente de não produção, ative a flag de verificação de segurança e volte a implementar as suas políticas com um JAR atualizado. Para definir a flag:

    • No ficheiro apigee-env/values.yaml, defina conf_security-secure.constructor.only como true em runtime:cwcAppend:. Por exemplo:
      # Apigee Runtime
      runtime:
        cwcAppend:
          conf_security-secure.constructor.only: true
    • Atualize o gráfico apigee-env para que a alteração seja aplicada ao ambiente. Por exemplo:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set env=ENV_NAME \
        -f OVERRIDES_FILE

        ENV_RELEASE_NAME é um nome usado para monitorizar a instalação e as atualizações do gráfico apigee-env. Este nome tem de ser exclusivo dos outros nomes de lançamentos do Helm na sua instalação. Normalmente, este valor é igual a ENV_NAME. No entanto, se o seu ambiente tiver o mesmo nome que o seu grupo de ambientes, tem de usar nomes de lançamentos diferentes para o ambiente e o grupo de ambientes, por exemplo, dev-env-release e dev-envgroup-release. Para mais informações sobre lançamentos no Helm, consulte o artigo Três grandes conceitos class="external" na documentação do Helm.

    Se a mensagem de registo "Failed to load and initialize class ..." ainda estiver presente, continue a modificar e testar o JAR até que a mensagem de registo deixe de aparecer.

  4. Ative a verificação de segurança no ambiente de produção.

    Depois de testar e validar exaustivamente o ficheiro JAR no ambiente de não produção, ative a verificação de segurança no seu ambiente de produção definindo a flag conf_security-secure.constructor.only como true e atualizando o gráfico apigee-env para o ambiente de produção para aplicar a alteração.

Reverter uma atualização

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

Leme

Para reverter para a versão anterior, use os gráficos e o ficheiro de substituições da instalação anterior.

  1. Crie a seguinte variável de ambiente:
    • PREVIOUS_HELM_CHARTS_HOME: o diretório onde os gráficos Helm do Apigee Hybrid anteriores estão instalados. Esta é a versão para a qual está a reverter.
  2. Reverta os anfitriões virtuais. Repita o seguinte comando para cada grupo de ambientes mencionado no ficheiro de substituições.
    helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_GROUP_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico apigee-virtualhost. No híbrido v1.10, normalmente é apigee-virtualhost-ENV_GROUP_NAME. No Hybrid v1.11 e mais recente, é normalmente ENV_GROUP_NAME.

  3. Reverter ambientes Repita o seguinte comando para cada ambiente mencionado no ficheiro de substituições.
    helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico apigee-env. No híbrido v1.10, normalmente é apigee-env-ENV_NAME. No Hybrid v1.11 e mais recente, é normalmente ENV_NAME.

  4. Reverter organização:
    helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  5. Reverta o Ingress Manager:
    helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  6. Reverta o Redis:
    helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  7. Reverta a telemetria do Apigee:
    helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  8. Reverter o Apigee Datastore (o componente da base de dados Cassandra):
    helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  9. Reverta o Apigee Controller:
    helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  10. Reverta os CRDs do Apigee Hybrid:
      kubectl apply -k  $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
    

apigeectl

  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. Execute os seguintes comandos no diretório raiz da instalação para a qual quer reverter. 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.10.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