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:
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
Faça uma cópia de segurança da sua instalação híbrida (recomendado)
- 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órioapigeectl
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%
- 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
- 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
- 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/..
-
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
- 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
-
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 ./
-
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 paraapigeectl
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
-
Altere para o diretório
apigeectl
:cd ./apigeectl
Este diretório é o
apigeectl
diretório inicial. É onde se encontra o comando executávelapigeectl
. - Estas instruções usam a variável de ambiente
$APIGEECTL_HOME
para o diretório no seu sistema de ficheiros onde o utilitárioapigeectl
está instalado. Se necessário, altere o diretório para o diretórioapigeectl
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%
- Valide a versão do
apigeectl
com o comandoversion
:./apigeectl version
Version: 1.10.5
- Crie um diretório
hybrid-base-directory/hybrid-files
e, de seguida, mova para o mesmo. O diretóriohybrid-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
- 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 \*
- No diretório
hybrid-files
:-
Atualize os seguintes links simbólicos para
$APIGEECTL_HOME
. Estes links permitem-lhe executar o comandoapigeectl
recém-instalado a partir do diretóriohybrid-files
:ln -nfs
$APIGEECTL_HOME
/tools toolsln -nfs
$APIGEECTL_HOME
/config configln -nfs
$APIGEECTL_HOME
/templates templatesln -nfs
$APIGEECTL_HOME
/plugins plugins -
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
-
Atualize os seguintes links simbólicos para
- 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"
- 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
. - Se não houver erros, inicialize o Hybrid 1.10.5:
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
- 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
. - 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
- 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.
- Certifique-se de que está no diretório
hybrid-files
. - Aplique as substituições para atualizar o Cassandra:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
- Conclusão da verificação:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
Avance para o passo seguinte apenas quando os pods estiverem prontos.
- 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
- Apresente os componentes do Redis:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
- 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
- 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
- Ambiente por ambiente: aplique as substituições a um ambiente de cada vez e verifique a conclusão. Repita
este passo para cada ambiente:
- 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.
- Certifique-se de que está no diretório
hybrid-files
. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
- Verifique o estado:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- Certifique-se de que está no diretório
Reverter uma atualização
Siga estes passos para reverter uma atualização anterior:
- 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}')
- 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}')
- Altere a variável
APIGEECTL_HOME
para apontar para o diretório que contém a versão anterior deapigeectl
. Por exemplo:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- 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 comandoapigeectl init
. Certifique-se de que usa o ficheiro de substituições original para a versão para a qual quer reverter:- No diretório hybrid-files, execute
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -f ORIGINAL_OVERRIDES_FILEEm 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
. - Verifique o estado dos seus pods:
kubectl -n NAMESPACE get pods
Onde NAMESPACE é o espaço de nomes híbrido do Apigee.
- 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. - 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
- Corrida
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -f ORIGINAL_OVERRIDES_FILE
- No diretório hybrid-files, execute