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:
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:
- 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. - 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
Faça uma cópia de segurança da sua instalação híbrida (recomendado)
Leme
- 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_HOMEMac OS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEWindows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME% - 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 ficheirotarde todo o diretório com:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.10-backup.tar.gz $APIGEE_HELM_CHARTS_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.
- 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-cassandraPROJECT_ID-apigee-cassandra.json$APIGEE_HELM_CHARTS_HOME/apigee-datastore/apigee-loggerPROJECT_ID-apigee-logger.json$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/apigee-martPROJECT_ID-apigee-mart.json$APIGEE_HELM_CHARTS_HOME/apigee-org/apigee-metricsPROJECT_ID-apigee-metrics.json$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/apigee-runtimePROJECT_ID-apigee-runtime.json$APIGEE_HELM_CHARTS_HOME/apigee-envapigee-synchronizerPROJECT_ID-apigee-synchronizer.json$APIGEE_HELM_CHARTS_HOME/apigee-env/apigee-udcaPROJECT_ID-apigee-udca.json$APIGEE_HELM_CHARTS_HOME/apigee-org/apigee-watcherPROJECT_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-prodem cada um dos seguintes diretórios:Conta de serviço Nome do ficheiro predefinido Diretórios de gráficos Helm apigee-non-prodPROJECT_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/ -
Certifique-se de que os ficheiros de chave e certificado TLS (
.crt,.keye/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/- 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órioapigeectle defina a variável com o seguinte comando:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEMac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEWindows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME% - 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 - 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
- Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que os gráficos
apigee-operatoreapigee-envusem 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.
- 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-chartsUsando 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.2helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar - 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
- Instale as CRDs do Apigee atualizadas:
-
Use a funcionalidade de teste de execução
kubectlexecutando o seguinte comando:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
-
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
- 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
-
-
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-datae os pods de tempo de execução são agendados em nós com a etiquetacloud.google.com/gke-nodepool=apigee-runtime. Pode personalizar as etiquetas do conjunto de nós no ficheirooverrides.yaml.Para mais informações, consulte o artigo Configurar pools de nós dedicados.
Instale os gráficos Helm do Apigee Hybrid
- Caso contrário, navegue para o diretório
APIGEE_HELM_CHARTS_HOME. Execute os seguintes comandos a partir desse diretório. - 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
- 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
apigeedatastoreestá em funcionamento verificando o respetivo estado:kubectl -n apigee get apigeedatastore default
NAME STATE AGE default running 2d
- 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
- 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
- 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
- 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
- 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
- ENV_RELEASE_NAME é o nome com o qual instalou anteriormente o gráfico
-
Atualize os grupos de ambientes (
virtualhosts).- 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
- Verifique o estado do ApigeeRoute (AR).
A instalação do
virtualhostscria 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
- Tem de atualizar um grupo de ambientes (virtualhost) de cada vez. Especifique o grupo
do ambiente com
Instale a versão 1.11.2-hotfix.3
- Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que o
runtimeuse 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.
-
Atualize o gráfico
apigee-envcom o comandohelm upgradee 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
-
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 -
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
- 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/$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
- 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
-
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.10com 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.11.2-xxxxxxx_linux_64. Mude o nome desse diretório paraapigeectlatravé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
-
Altere para o diretório
apigeectl:cd ./apigeectl
Este diretório é o
apigeectldiretório inicial. É onde se encontra o comando executávelapigeectl. - Estas instruções usam a variável de ambiente
$APIGEECTL_HOMEpara o diretório no seu sistema de ficheiros onde o utilitárioapigeectlestá instalado. Se necessário, altere o diretório para o diretórioapigeectle 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
apigeectlcom o comandoversion:./apigeectl version
Version: 1.11.2
- Crie um diretório
hybrid-base-directory/hybrid-filese, 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
kubectlestá 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 comandoapigeectlrecé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 uma inicialização de teste para verificar se existem erros:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=clientOnde OVERRIDES_FILE é o nome do ficheiro de substituições, por exemplo,
./overrides/overrides.yaml. - Se não existirem erros, inicialize o híbrido 1.11.2:
$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
applyatravé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
virtualhostse 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
Instale a versão 1.11.2-hotfix.3
- Faça a seguinte alteração ao ficheiro overrides.yaml para permitir que o
runtimeuse 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.
-
Instale a correção rápida com
apigeectl initatravés do ficheiro de substituições atualizado.Execução de ensaio:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=clientInicializar:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE -
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=clientAplicar:
${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
Valide as políticas após a atualização para a versão 1.11.2-hotfix.3
Use este procedimento para validar o comportamento da política JavaCallout após a atualização para o Hybrid 1.11.2-hotfix.3.
- 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. - 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.
- 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, definaconf_security-secure.constructor.onlycomotrueemruntime:cwcAppend:. Por exemplo:# Apigee Runtime runtime: cwcAppend: conf_security-secure.constructor.only: true
- Atualize o gráfico
apigee-envpara 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 aENV_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-releaseedev-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. - No ficheiro
- 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.onlycomotruee atualizando o gráficoapigee-envpara 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.
- 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.
- 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. - 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. - Reverter organização:
helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- Reverta o Ingress Manager:
helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- Reverta o Redis:
helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- Reverta a telemetria do Apigee:
helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- 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
- Reverta o Apigee Controller:
helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- 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
- 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_HOMEpara apontar para o diretório que contém a versão anterior deapigeectl. Por exemplo:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- 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:
- 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.10.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
apigeedspod 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