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_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%
- 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 ficheirotar
de 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-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/
-
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/
- 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.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-operator
eapigee-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.
- 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
- 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
kubectl
executando 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-data
e 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
apigeedatastore
está 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
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
- 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
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.
-
Atualize o gráfico
apigee-env
com o comandohelm 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
-
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.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 ./
-
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 paraapigeectl
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
-
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.11.2
- 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 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 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
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
Instale a versão 1.11.2-hotfix.3
- 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.
-
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
-
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
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.only
comotrue
emruntime: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 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-release
edev-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.only
comotrue
e atualizando o gráficoapigee-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.
- 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_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
- 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
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