Este procedimento abrange o upgrade da Apigee híbrida versão 1.16.x para a Apigee híbrida versão 1.17.1 e de versões anteriores da Apigee híbrida 1.17.x para a versão 1.17.1.
Use os mesmos procedimentos para upgrades de versão secundária (por exemplo, 1.16 para 1.17) e para upgrades de versão de patch (por exemplo, 1.17.0 para 1.17.1).
Se estiver fazendo upgrade da versão 1.15 ou anterior do Apigee híbrida, primeiro você precisará fazer upgrade para a versão híbrida 1.16 antes de fazer upgrade para a versão 1.17.1. Consulte as instruções sobre Como fazer upgrade da Apigee híbrida para a versão 1.16.
Mudanças em relação à Apigee híbrida v1.16
Observe as seguintes mudanças:
- Suporte ao Protocolo de Contexto de Modelo (MCP): A versão 1.17 do Apigee híbrido adiciona suporte ao Protocolo de Contexto de Modelo (MCP), um protocolo aberto que permite que aplicativos de IA baseados em agentes usem suas APIs como ferramentas por meio de endpoints MCP gerenciados. O Apigee hybrid roteia, autoriza e protege essas chamadas de ferramentas do MCP da mesma forma que gerencia suas outras APIs. Assim, você não precisa executar nem manter seus próprios servidores do MCP. Para mais informações, consulte Protocolo de Contexto de Modelo (MCP) na visão geral da Apigee e o início rápido do MCP.
- Rotação do certificado da AC raiz: A versão 1.17 do Apigee Hybrid adiciona suporte para a rotação do certificado da autoridade certificadora (AC) raiz que ancora a confiança para a comunicação TLS entre os componentes de ambiente de execução. Agora é possível substituir a CA raiz antes que ela expire, sem tempo de inatividade, seguindo um procedimento de rotação gradual. Para mais informações, consulte Rotacionar o certificado da AC raiz.
- Suporte ao TLS 1.3: A versão 1.17 da Apigee híbrida adiciona suporte ao TLS 1.3, a versão mais recente do protocolo Transport Layer Security. O TLS 1.3 oferece handshakes de conexão mais rápidos e segurança mais forte do que as versões anteriores do TLS. Para informações sobre como configurar o TLS no gateway de entrada, consulte Como configurar o TLS e o mTLS no gateway de entrada.
- Suporte a proxy de encaminhamento para políticas de IA: A versão 1.17 da Apigee híbrida adiciona suporte a proxy de encaminhamento para as políticas de IA, como as políticas de proteção de modelos e de cache semântico. As chamadas de saída feitas por essas políticas agora podem ser encaminhadas por um proxy de encaminhamento HTTP, que não era compatível com versões anteriores da Apigee híbrida. Para mais informações, consulte Configurar o encaminhamento de proxy para proxies de API.
- Suporte a endpoints do Private Service Connect (PSC) para cache semântico: A versão 1.17 do Apigee híbrida adiciona suporte a endpoints do Private Service Connect (PSC) para cache semântico. Agora, as políticas de cache semântico podem alcançar os serviços de suporte por um endpoint do Private Service Connect, o que mantém esse tráfego na sua rede particular. Para mais informações, consulte Começar a usar políticas de cache semântico.
Para mais informações sobre os recursos da versão 1.17 da Apigee híbrida, consulte as notas da versão 1.17.1 da Apigee híbrida.
Pré-requisitos
Antes de fazer upgrade para a versão híbrida 1.17, verifique se a instalação atende aos seguintes requisitos:
- Se sua instalação híbrida executa uma versão anterior à v1.16, é necessário fazer upgrade para a versão 1.16 antes de fazer upgrade para a v1.17. Consulte Como fazer upgrade da Apigee híbrida para a versão 1.16.
- Helm v3.14.2 ou mais recente.
kubectl: uma versão compatível dekubectladequada para a versão da plataforma Kubernetes. Consulte Plataformas e versões compatíveis:kubectl.- cert-manager: uma versão compatível do cert-manager. Consulte Plataformas e versões compatíveis: cert-manager. Se necessário, faça upgrade do cert-manager na seção Preparação para fazer upgrade para a versão 1.17 abaixo.
Antes de fazer upgrade para a versão 1.17.1: limitações e observações importantes
O upgrade para a Apigee híbrida versão 1.17 pode exigir inatividade.
Ao fazer upgrade do controlador da Apigee para a versão 1.17.1, todas as implantações da Apigee passam por uma reinicialização gradual. Para minimizar a inatividade em ambientes híbridos de produção durante uma reinicialização gradual, verifique se você está executando pelo menos dois clusters (na mesma ou diferente região/data center). Divida todo o tráfego de produção para um único cluster. Pegue o cluster que você está prestes a fazer upgrade off-line e continue o processo de upgrade. Repita o processo para cada cluster.
A Apigee recomenda que, depois de iniciar o upgrade, você faça upgrade de todos os clusters o mais rápido possível para reduzir as chances de impacto na produção. Não há limite de tempo para o upgrade de todos os clusters restantes depois do upgrade do primeiro. No entanto, até que todos os clusters restantes sejam atualizados, o backup e a restauração do Cassandra não funcionarão com versões mistas. Por exemplo, um backup da versão híbrida 1.16 não pode ser usado para restaurar uma instância da versão híbrida 1.17.
As mudanças no plano de gerenciamento não precisam ser totalmente suspensas durante um upgrade. Todas as suspensões temporárias necessárias às mudanças no plano de gerenciamento estão incluídas nas instruções de upgrade abaixo.
Como fazer upgrade para a versão 1.17.1
Os procedimentos para fazer upgrade da Apigee híbrida são organizados nas seguintes seções:
Preparar para fazer upgrade para a versão 1.17
Faça o backup da instalação híbrida
- Estas instruções usam a variável de ambiente APIGEE_HELM_CHARTS_HOME para o diretório no seu sistema de arquivos em que você instalou os gráficos do Helm. Se necessário, mude o diretório
para seu 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 backup do diretório
$APIGEE_HELM_CHARTS_HOME/da versão 1.16. É possível usar qualquer processo de backup. Por exemplo, você pode criar um arquivotarde todo o diretório com:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.16-backup.tar.gz $APIGEE_HELM_CHARTS_HOME - Faça o backup do banco de dados Cassandra seguindo as instruções em Backup e recuperação do Cassandra.
-
Verifique se o certificado TLS e os arquivos de chave (
.crt,.keye/ou.pem) estão no diretório$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.
Fazer upgrade da versão do Kubernetes
Verifique a versão da plataforma do Kubernetes e, se necessário, faça upgrade para uma versão compatível com as versões híbridas 1.16 e 1.17. Siga a documentação da plataforma se precisar de ajuda.
Extraia os gráficos do Apigee Helm.
Os gráficos da Apigee híbrida são hospedados no Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Usando o comando pull, copie todos os gráficos da Apigee híbrida do Helm
para o armazenamento local com o seguinte comando:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.17.1helm 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
Editar kustomization.yaml para um namespace personalizado da Apigee
Se o namespace da Apigee não for apigee, edite o arquivo apigee-operator/etc/crds/default/kustomization.yaml e substitua o valor namespace pelo namespace da Apigee.
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Se você estiver usando apigee como namespace, não será necessário editar o arquivo.
-
Use o recurso de simulação
kubectlexecutando o seguinte comando:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
Depois de validar com o comando de simulação, execute o seguinte:
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
A resposta será semelhante a esta:
apigeedatastores.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
Verifique os identificadores nos nós do cluster.
Por padrão, a Apigee programa pods de dados em nós com o rótulo
cloud.google.com/gke-nodepool=apigee-data e os pods de ambiente de execução
são programados em nós com o rótulo
cloud.google.com/gke-nodepool=apigee-runtime. É possível personalizar os rótulos do pool de nós no arquivo overrides.yaml.
Para mais informações, consulte Como configurar pools de nós dedicados.
Fazer upgrade do cert-manager
A Apigee híbrida v1.17 é compatível com as versões 1.16 a 1.19 do cert-manager. Há uma mudança no cert-manager 1.18 que pode causar um problema com seu tráfego. Na versão 1.18 do cert-manager, o valor padrão de Certificate.Spec.PrivateKey.rotationPolicy mudou de Never para Always. Para instalações atualizadas da Apigee híbrida, isso pode causar um problema com o tráfego. Ao fazer upgrade para a versão híbrida 1.17 de uma versão anterior, edite o certificado apigee-ca para compensar essa mudança ou mantenha a versão do cert-manager na versão 1.17.x ou anterior.
Antes de fazer upgrade do cert-manager para 1.18 ou 1.19, use o procedimento a seguir para editar o certificado apigee-ca e definir o valor de Certificate.Spec.PrivateKey.rotationPolicy como Never.
-
Verifique o conteúdo do certificado
apigee-capara saber serotationPolicyestá definido:kubectl get certificate apigee-ca -n cert-manager -o yaml
Procure os valores em
spec.privateKeyna saída:... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA # Note: rotationPolicy would appear here if it is set. size: 256 secretName: apigee-ca ... -
Se
rotationPolicynão estiver definido ou se estiver definido comoAlways, edite o certificadoapigee-capara definir o valor derotationPolicycomoNever:- Faça primeiro uma simulação:
kubectl patch Certificate \ --dry-run=server \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca - Adicione um patch ao certificado:
kubectl patch Certificate \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca
- Faça primeiro uma simulação:
-
Verifique se o valor de
rotationPolicyagora está definido comoNever:kubectl get certificate apigee-ca -n cert-manager -o yaml
A saída será parecida com esta:
... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA rotationPolicy: Never size: 256 secretName: apigee-ca ... -
Faça upgrade do cert-manager. O comando a seguir vai fazer o download e instalar o cert-manager v1.19.2:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.2/cert-manager.yaml
Consulte Plataformas e versões compatíveis: cert-manager para conferir uma lista de versões compatíveis.
Veja estes tópicos:
- Problema conhecido 465834046
- Versão 1.18 do cert-manager: o valor padrão de
Certificate.Spec.PrivateKey.rotationPolicyagora éAlways
Instalar o ambiente de execução híbrido 1.17.1
- Caso contrário, acesse o diretório
APIGEE_HELM_CHARTS_HOME. Execute os comandos a seguir nesse diretório. - Faça upgrade do operador/controlador da Apigee:
Simulação:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique a instalação do operador da Apigee:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.17.1 1.17.1
Para saber se ele está funcionando, confira a disponibilidade:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- Faça upgrade do repositório de dados da Apigee:
Simulação:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para saber se o
apigeedatastoreestá em execução, confira o estado dele:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Faça upgrade da telemetria da Apigee:
Simulação:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para saber se ele está funcionando, confira o estado dele:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Faça o upgrade do Apigee Redis:
Simulação:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para saber se ele está funcionando, confira o estado dele:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Faça upgrade do gerenciador de entrada da Apigee:
Simulação:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para saber se ele está funcionando, confira a disponibilidade:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- Faça upgrade da organização da Apigee:
Simulação:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Faça upgrade do gráfico:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Para saber se ele está funcionando, confira o estado da respectiva organização:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-my-org-my-env running 2d
- Faça upgrade do ambiente.
É preciso instalar um ambiente de cada vez. Especifique o ambiente com
--set env=ENV_NAME.Simulação:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
- ENV_RELEASE_NAME é um nome usado para rastrear a instalação e os upgrades do gráfico
apigee-env. Esse nome precisa ser exclusivo em relação aos outros nomes de versão do Helm na sua instalação. Geralmente, é o mesmo queENV_NAME. No entanto, se o ambiente tiver o mesmo nome do grupo de ambientes, use nomes de lançamento 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 Três grandes conceitos na documentação do Helm. - ENV_NAME é o nome do ambiente que você está fazendo upgrade.
- OVERRIDES_FILE é o novo arquivo de substituição para a v.1.17.1
Faça upgrade do gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Para saber se ele está funcionando, confira o estado do respectivo ambiente:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-org-my-env running 2d
- ENV_RELEASE_NAME é um nome usado para rastrear a instalação e os upgrades do gráfico
-
Faça upgrade dos grupos de ambiente (
virtualhosts).- É necessário fazer upgrade de um grupo de ambiente (virtualhost) por vez. Especifique o grupo de ambientes com
--set envgroup=ENV_GROUP_NAME: Repita os seguintes comandos para cada grupo de ambientes mencionado no arquivo overrides.yaml:Simulação:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run=server
ENV_GROUP_RELEASE_NAME é o nome com que você instalou anteriormente o gráfico
apigee-virtualhost. Normalmente, é ENV_GROUP_NAME.Faça upgrade do gráfico:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- Verifique o estado da ApigeeRoute (AR).
A instalação de
virtualhostscria a ApigeeRouteConfig (ARC), que gera internamente a ApigeeRoute (AR) depois que o inspetor da Apigee extrai detalhes relacionados ao grupo de ambientes do plano de controle. Portanto, verifique se o estado de RA correspondente está em execução:kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-123abc running 2d
- É necessário fazer upgrade de um grupo de ambiente (virtualhost) por vez. Especifique o grupo de ambientes com
Como reverter para uma versão anterior
Para reverter para a versão anterior, use a versão mais antiga do gráfico para reverter o processo de upgrade na ordem inversa. Comece com apigee-virtualhost, volte para apigee-operator e depois reverta as CRDs.
- Reverta os gráficos. Os comandos a seguir pressupõem que você está usando os gráficos da versão anterior (v1.16.x).
-
Execute o seguinte comando para cada grupo de ambiente:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.16_OVERRIDES_FILE
-
Execute o seguinte comando para cada ambiente:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=ENV_NAME \ -f 1.16_OVERRIDES_FILE
-
apigee-org:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
apigee-ingress-manager:helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
apigee-redis:helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
apigee-telemetry:helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
apigee-datastore:helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
apigee-operator:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.16_OVERRIDES_FILE
-
- Reverta os CRDs reinstalando os CRDs mais antigos.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false