Este procedimento abrange a atualização da versão 1.15.x do Apigee Hybrid para a versão 1.16.0 do Apigee Hybrid.
Alterações do Apigee Hybrid v1.15
Tenha em atenção as seguintes alterações:
-
Perfis de Seccomp:
A partir da versão 1.16,
O Apigee hybrid oferece agora a capacidade de aplicar perfis de Seccomp aos seus componentes de tempo de execução,
melhorando significativamente a postura de segurança da sua implementação. Esta funcionalidade permite que os administradores e as equipas de segurança do Apigee restrinjam as chamadas do sistema que um processo contentorizado pode fazer ao kernel do anfitrião. Ao limitar um contentor apenas às chamadas de sistema necessárias, pode:
- Melhorar a segurança: mitigar o risco de fugas de contentores e elevação de privilégios.
- Aplique o princípio do menor privilégio: certifique-se de que os componentes só têm acesso às chamadas do sistema exatas necessárias para o respetivo funcionamento.
- Cumprir a conformidade: ofereça um controlo essencial para cumprir os rigorosos requisitos de conformidade de segurança.
- UDCA na remoção do Apigee hybrid: na versão 1.16> do Apigee hybrid, o componente do agente de recolha de dados unificados (UDCA) foi removido. As responsabilidades de envio de dados de estatísticas, rastreio e estado de implementação para o plano de controlo do Apigee são agora processadas através de um pipeline de dados baseado no Google Cloud Pub/Sub. A utilização do pipeline de dados baseado no Pub/Sub é o mecanismo de recolha de dados predefinido desde a versão 1.14.0 do Apigee hybrid.
-
Conta de serviço:
Na versão 1.16.0, o Apigee Hybrid introduz uma
apigee-guardrailsconta de serviço do Google IAM.apigee-guardrailsIsto é usado pelo gráficoapigee-operatordurante a instalação para verificar se todas as APIs necessárias estão ativadas no seu projeto.Consulte:
-
Suporte para as versões 1.18 e 1.19 do cert-manager:
O Apigee hybrid v1.16 suporta a versão 1.18 e a versão 1.19 do cert-manager. Na versão 1.18 do cert-manager, existe uma alteração ao valor predefinido de
Certificate.Spec.PrivateKey.rotationPolicyque pode afetar o tráfego. Se estiver a atualizar a partir de uma versão anterior do Apigee hybrid e estiver a atualizar para a versão 1.18 ou superior do cert-manager, siga o procedimento de atualização do cert-manager neste guia.
Para mais informações acerca das funcionalidades na versão híbrida 1.16, consulte as notas de lançamento do Apigee hybrid v1.16.0.
Pré-requisitos
Antes de atualizar para a versão híbrida 1.16, certifique-se de que a sua instalação cumpre os seguintes requisitos:
- Se a sua instalação híbrida estiver a executar uma versão anterior à v1.15, tem de fazer a atualização para a versão 1.15 antes de atualizar para a v1.16. Consulte o artigo Atualizar o Apigee Hybrid para a versão 1.15.
- Versão do Helm v3.14.2 ou superior.
kubectl: uma versão suportada dokubectladequada para a versão da sua plataforma Kubernetes. Consulte Plataformas e versões suportadas:kubectl.- cert-manager: uma versão suportada do cert-manager. Consulte o artigo Plataformas e versões suportadas: cert-manager. Se necessário, atualize o cert-manager na secção Prepare-se para atualizar para a versão 1.16 abaixo.
Antes de atualizar para a versão 1.16.0: limitações e notas importantes
O Apigee hybrid 1.16.0 introduz um novo limite de proxies melhorado por ambiente que lhe permite implementar mais proxies e fluxos partilhados num único ambiente. Consulte o artigo Limites: proxies de API para compreender os limites do número de proxies e fluxos partilhados que pode implementar por ambiente. Esta funcionalidade só está disponível em organizações híbridas recém-criadas e não pode ser aplicada a organizações atualizadas. Para usar esta funcionalidade, faça uma nova instalação do Hybrid 1.16.0 e crie uma nova organização.
Esta funcionalidade está disponível exclusivamente como parte do plano de subscrição de 2024 e está sujeita às autorizações concedidas ao abrigo dessa subscrição. Consulte o artigo Limites de proxy melhorados por ambiente para saber mais acerca desta funcionalidade.
A atualização para a versão 1.16 do Apigee Hybrid pode exigir um período de inatividade.
Quando atualizar o controlador do Apigee para a versão 1.16.0, todas as implementações do Apigee são reiniciadas de forma gradual. Para minimizar o tempo de inatividade em ambientes híbridos de produção durante um reinício contínuo, certifique-se de que está a executar, pelo menos, dois clusters (na mesma região ou num centro de dados diferente). Desvie todo o tráfego de produção para um único cluster e coloque o cluster que está prestes a atualizar offline. Em seguida, avance com o processo de atualização. Repita o processo para cada cluster.
A Apigee recomenda que, assim que iniciar a atualização, atualize todos os clusters o mais rapidamente possível para reduzir as probabilidades de impacto na produção. Não existe um limite de tempo para a atualização de todos os clusters restantes depois de o primeiro ser atualizado. No entanto, até que todos os clusters restantes sejam atualizados, a cópia de segurança e o restauro do Cassandra não podem funcionar com versões mistas. Por exemplo, não é possível usar uma cópia de segurança do Hybrid 1.15 para restaurar uma instância do Hybrid 1.16.
Não é necessário suspender totalmente as alterações do plano de gestão durante uma atualização. Quaisquer suspensões temporárias necessárias às alterações do plano de gestão são indicadas nas instruções de atualização abaixo.
Vista geral da atualização para a versão 1.16.0
Os procedimentos para atualizar o Apigee hybrid estão organizados nas seguintes secções:
Prepare-se para atualizar para a versão 1.16
Faça uma cópia de segurança da sua 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 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 1.15
$APIGEE_HELM_CHARTS_HOME/. Pode usar qualquer processo de cópia de segurança. Por exemplo, pode criar um ficheirotarde todo o seu diretório com:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.15-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.
-
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/.
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 híbrido 1.15 e pelo híbrido 1.16. Siga a documentação da sua plataforma se precisar de ajuda.
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
Use o comando pull para copiar 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-chartsexport CHART_VERSION=1.16.0helm 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
Edite kustomization.yaml para um espaço de nomes apigee personalizado
Se o seu espaço de nomes do Apigee não for apigee, edite o ficheiro apigee-operator/etc/crds/default/kustomization.yaml e substitua o valor namespace pelo seu espaço de nomes do Apigee.
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Se estiver a usar apigee como espaço de nomes, não precisa de editar o ficheiro.
-
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=server
-
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 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 as etiquetas nos nós do cluster.
Por predefinição, o Apigee agenda pods de dados em nós com a etiqueta
cloud.google.com/gke-nodepool=apigee-data e os pods de tempo de execução
são agendados em nós com a etiqueta
cloud.google.com/gke-nodepool=apigee-runtime. Pode
personalizar as etiquetas do conjunto de nós no ficheiro overrides.yaml.
Para mais informações, consulte o artigo Configurar pools de nós dedicados.
Configure a conta de serviço apigee-guardrails
A partir da versão híbrida 1.16, a conta de serviço apigee-guardrails é necessária para
atualizar o gráfico apigee-operator.
No procedimento seguinte, selecione o tipo de autenticação da conta de serviço que está a usar.
-
Valide se consegue executar
create-service-account. Se acabou de transferir os gráficos, o ficheirocreate-service-accountpode não estar num modo executável. No diretório APIGEE_HELM_CHARTS_HOME, execute o seguinte comando:./apigee-operator/etc/tools/create-service-account --help
Se a saída indicar
permission denied, tem de tornar o ficheiro executável, por exemplo, comchmodno Linux, MacOS ou UNIX, ou no Explorador do Windows, ou com o comandoicaclsno Windows. Por exemplo:chmod +x ./apigee-operator/etc/tools/create-service-account
-
Crie a conta de serviço
apigee-guardrails:Segredos do Kubernetes
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Este comando cria a conta de serviço
apigee-guardrailse transfere a chave para o diretórioservice-accounts/.Ficheiros JSON
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir ./apigee-operator/
Este comando cria a conta de serviço
apigee-guardrailse transfere a chave para o diretório do gráficoapigee-operator/.Vault
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Este comando cria a conta de serviço
apigee-guardrailse transfere a chave para o diretórioservice-accounts/.WIF para o GKE
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Este comando cria a conta de serviço
apigee-guardrailse transfere a chave para o diretórioapigee-operator/etc/tools/service-accounts/. Não precisa do ficheiro de chave transferido e pode eliminá-lo.WIF noutras plataformas
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Este comando cria a conta de serviço
apigee-guardrailse transfere a chave para o diretórioservice-accounts/. -
Configure a autenticação para a conta de serviço
apigee-guardrails:Segredos do Kubernetes
Crie o segredo do Kubernetes com o ficheiro de chave da conta de serviço
apigee-guardrailsno diretórioservice-accounts/:kubectl create secret generic apigee-guardrails-svc-account \ --from-file="client_secret.json=$APIGEE_HELM_CHARTS_HOME/service-accounts/$PROJECT_ID-apigee-guardrails.json" \ -n $APIGEE_NAMESPACEAdicione o seguinte ao ficheiro
overrides.yaml:guardrails: serviceAccountRef: apigee-guardrails-svc-account
Ficheiros JSON
Adicione o seguinte ao seu ficheiro
overrides.yaml, usando o caminho para o ficheiro de chave da conta de serviçoapigee-guardrailsno diretórioapigee-operator/:guardrails: serviceAccountPath: $PROJECT_ID-apigee-guardrails.json
Vault
- Atualize o segredo do Vault
secret/data/apigee/orgsakeyspara adicionar uma entradaguardrailscom o conteúdo do ficheiro de chave da conta de serviçoapigee-guardrails.vault kv patch secret/apigee/orgsakeys guardrails="$(cat ./service-accounts/hybrid115-apigee-guardrails.json)"
-
A conta de serviço do Kubernetes (KSA) para as restrições é denominada
apigee-operator-guardrails-sa. Adicione o KSA das proteções ao nível do sistema às contas de serviço específicas da organização associadas à funçãoapigee-orgsakeysno Vault.- Obtenha a lista atual de associações de KSAs:
vault read auth/kubernetes/role/apigee-orgsakeys
O resultado deve estar no seguinte formato:
Key Value --- ----- alias_name_source serviceaccount_uid bound_service_account_names BOUND_SERVICE_ACCOUNT_NAMES bound_service_account_namespace_selector n/a bound_service_account_namespaces APIGEE_NAMESPACE
Na saída,
BOUND_SERVICE_ACCOUNT_NAMESé uma lista de nomes de contas de serviço separados por vírgulas. Adicioneapigee-operator-guardrails-saà lista de nomes. Por exemplo (sem as novas linhas adicionadas para facilitar a leitura):apigee-manager,apigee-cassandra-default,apigee-cassandra-backup-sa, apigee-cassandra-restore-sa,apigee-cassandra-schema-setup-myhybrido rg-5b044c1,apigee-cassandra-schema-val-myhybridorg-5b044c1,apigee-c assandra-user-setup-myhybridorg-5b044c1,apigee-mart-myhybridorg-5b0 44c1,apigee-mint-task-scheduler-myhybridorg-5b044c1,apigee-connect- agent-myhybridorg-5b044c1,apigee-watcher-myhybridorg-5b044c1,apigee -metrics-apigee-telemetry,apigee-open-telemetry,apigee-synchronizer -myhybridorg-dev-ee52aca,apigee-runtime-telemetry-collector-apigee- telemetry,apigee-logger-apigee-e-myhybrridorg-dev-ee52aca,apigee-sy nchronizer-myhybridog-prod-2d0221c,apigee-runtime-myhybridorg-prod- 2d0221c,apigee-operator-guardrails-sa
- Atualize as associações para a função
apigee-orgsakeyscom a lista atualizada de nomes de contas de serviço:vault write auth/kubernetes/role/apigee-orgsakeys \ bound_service_account_names=UPDATED_BOUND_SERVICE_ACCOUNT_NAMES \ bound_service_account_namespaces=APIGEE_NAMESPACE \ policies=apigee-orgsakeys-auth \ ttl=1m
- Obtenha a lista atual de associações de KSAs:
-
Adicione "restrições" ao
SecretProviderClass- Edite o ficheiro
spc-org.yaml. - Em
spec.parameters.objects, adicione uma entrada de restrições:- objectName: "guardrails" secretPath: "" secretKey: "" - Atualize o seu
SecretProviderClass:kubectl -n APIGEE_NAMESPACE apply -f spc-org.yaml
- Edite o ficheiro
WIF para o GKE
A conta de serviço do Kubernetes (KSA) para as restrições é denominada
apigee-operator-guardrails-sa. Crie a associação para a conta de serviço Google (GSA)apigee-guardrailscom o seguinte comando:gcloud iam service-accounts add-iam-policy-binding apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$APIGEE_NAMESPACE/apigee-operator-guardrails-sa]" \ --project $PROJECT_IDAdicione o seguinte ao ficheiro
overrides.yaml:guardrails: gsa: apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com
WIF noutras plataformas
A conta de serviço do Kubernetes (KSA) para as restrições é denominada
apigee-operator-guardrails-sa. Tem de conceder ao KSA das restrições acesso para se fazer passar pelaapigee-guardrailsconta de serviço Google (GSA) e configurar as substituições para usar um ficheiro de configuração de credenciais.- Conceda ao KSA acesso para se fazer passar pelo GSA com o seguinte comando:
Modelo
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/system:serviceaccount:APIGEE_NAMESPACE:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
Exemplo
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
Onde:
PROJECT_ID: o ID do seu projeto do Google Cloud.PROJECT_NUMBER: o número do projeto do projeto onde criou o Workload Identity Pool.POOL_ID: o ID do Workload Identity Pool.APIGEE_NAMESPACE: o espaço de nomes onde o Apigee Hybrid está instalado.
- Crie um ficheiro de configuração de credenciais para a conta de serviço
apigee-guardrails:gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --credential-source-file=/var/run/service-account/token \ --credential-source-type=text \ --output-file=apigee-guardrails-credential-configuration.jsonEm que
WORKLOAD_PROVIDER_IDé o ID do fornecedor do Workload Identity Pool. - Configure
apigee-guardrailspara usar a federação de identidades da carga de trabalho com um dos seguintes métodos:WIF: secrets
-
Crie um novo segredo do Kubernetes com o ficheiro de origem das credenciais para cada ficheiro de configuração das credenciais.
kubectl create secret -n APIGEE_NAMESPACE generic guardrails-workload-identity-secret --from-file="client_secret.json=./apigee-guardrails-credential-configuration.json"
-
Substitua o valor de
serviceAccountRefpelo novo segredo:guardrails: serviceAccountRef: guardrails-workload-identity-secret
WIF: ficheiros
Mova o ficheiro
apigee-guardrails-credential-configuration.jsongerado para o diretório do gráficoapigee-operator/.Adicione o seguinte ao ficheiro
overrides.yaml:guardrails: serviceAccountPath: apigee-guardrails-credential-configuration.json
WIF: Vault
Atualize a chave da conta de serviço para
guardrailsno Vault com o ficheiro de origem das credenciais correspondente:SAKEY=$(cat .apigee-guardrails-credential-configuration.json); kubectl -n APIGEE_NAMESPACE exec vault-0 -- vault kv patch secret/apigee/orgsakeys guardrails="$SAKEY"
Consulte
Storing service account keys in Hashicorp Vaultpara mais informações. -
Crie um novo segredo do Kubernetes com o ficheiro de origem das credenciais para cada ficheiro de configuração das credenciais.
- Atualize o segredo do Vault
Atualize o cert-manager
O Apigee Hybrid v1.16 suporta as versões 1.16 a 1.19 do cert-manager. Existe uma alteração no cert-manager 1.18 que pode causar um problema com o seu tráfego. Na versão 1.18 do cert-manager, o valor predefinido de Certificate.Spec.PrivateKey.rotationPolicy foi alterado de Never para Always. Para instalações híbridas do Apigee atualizadas, isto pode causar um problema com o seu tráfego. Quando atualizar para a versão híbrida 1.16 a partir de uma versão anterior, tem de editar o seu certificado apigee-ca para compensar esta alteração ou manter a sua versão do cert-manager na versão 1.17.x ou inferior.
Antes de atualizar o cert-manager para a versão 1.18 ou 1.19, use o procedimento dos passos seguintes para editar o seu certificado apigee-ca
para definir o valor de Certificate.Spec.PrivateKey.rotationPolicy como Never.
-
Verifique o conteúdo do seu certificado
apigee-capara ver serotationPolicyestá definido:kubectl get certificate apigee-ca -n cert-manager -o yaml
Procure os valores em
spec.privateKeyno resultado:... 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 estiver definido comoAlways, edite o certificadoapigee-capara definir o valor derotationPolicycomoNever:- Faça primeiro uma execução de ensaio:
kubectl patch Certificate \ --dry-run=server \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca - Aplique 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 execução de ensaio:
-
Verifique se o valor de
rotationPolicyestá agora definido comoNever:kubectl get certificate apigee-ca -n cert-manager -o yaml
O resultado deve ser semelhante ao seguinte:
... 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 ... -
Atualize o cert-manager. O comando seguinte transfere e instala 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 o artigo Plataformas e versões suportadas: cert-manager para ver uma lista das versões suportadas.
Consulte:
- Problema conhecido 465834046
- cert-manager Release 1.18: o valor predefinido de
Certificate.Spec.PrivateKey.rotationPolicyé agoraAlways
Instale o tempo de execução híbrido 1.16.0
- Se não o tiver feito, 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 \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Valide a instalação do operador do 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.16.0 1.16.0
Verifique se está em funcionamento verificando a respetiva 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
- Atualize o repositório de dados do Apigee:
Execução de ensaio:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique se o
apigeedatastoreestá em funcionamento verificando o respetivo estado:kubectl -n APIGEE_NAMESPACE 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_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique se está a funcionar corretamente verificando o respetivo estado:
kubectl -n APIGEE_NAMESPACE 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_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique se está a funcionar corretamente verificando o respetivo estado:
kubectl -n APIGEE_NAMESPACE 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_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique se está em funcionamento verificando a respetiva 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
- Atualize a organização do Apigee:
Execução de ensaio:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Atualize o gráfico:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifique se está em funcionamento consultando o estado da organização respetiva:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-my-org-my-env 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_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
- 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 Três conceitos importantes na documentação do Helm. - ENV_NAME é o nome do ambiente que está a atualizar.
- OVERRIDES_FILE é o seu novo ficheiro de substituições para a versão 1.16.0
Atualize o gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Verifique se está em funcionamento verificando o estado do ambiente respetivo:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-org-my-env running 2d
- ENV_RELEASE_NAME é um nome usado para monitorizar a instalação e as atualizações do 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 ambientes mencionado no ficheiro overrides.yaml:Execução de ensaio:
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 o qual instalou anteriormente o gráfico
apigee-virtualhost. Normalmente, é ENV_GROUP_NAME.Atualize o 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 do ApigeeRoute (AR).
A instalação do
virtualhostscria o ApigeeRouteConfig (ARC), que cria internamente o ApigeeRoute (AR) assim que o monitor do Apigee extrai 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_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
- Tem de atualizar um grupo de ambientes (virtualhost) de cada vez. Especifique o grupo
do ambiente com
- Depois de verificar que todas as instalações foram atualizadas com êxito, elimine a versão
apigee-operatormais antiga do espaço de nomesapigee-system.- Desinstale a versão
operatorantiga:helm delete operator -n apigee-system
- Elimine o espaço de nomes
apigee-system:kubectl delete namespace apigee-system
- Desinstale a versão
- Atualize novamente o
operatorno seu espaço de nomes do Apigee para reinstalar os recursos com âmbito de cluster eliminados:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
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 atualização na ordem inversa. Comece com apigee-virtualhost e avance até apigee-operator. Em seguida, reverta os CRDs.
- Reverter todos os gráficos de
apigee-virtualhostparaapigee-datastore. Os seguintes comandos pressupõem que está a usar os gráficos da versão anterior (v1.15.x).Execute o seguinte comando para cada grupo de ambientes:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.15_OVERRIDES_FILE
Execute o seguinte comando para cada ambiente:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f 1.15_OVERRIDES_FILE
Reverta os restantes gráficos, exceto o gráfico
apigee-operator.helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
- Crie o espaço de nomes
apigee-system.kubectl create namespace apigee-system
- Corrija a anotação de recursos de volta para o espaço de nomes
apigee-system.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
- Se também tiver alterado o nome de lançamento, atualize a anotação com o nome de lançamento
operator.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
- Instale
apigee-operatornovamente no espaço de nomesapigee-system.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE
- Reverta os CRDs reinstalando os CRDs mais antigos.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- Limpe a versão
apigee-operatordo espaço de nomes APIGEE_NAMESPACE para concluir o processo de reversão.helm uninstall operator -n APIGEE_NAMESPACE
- Alguns recursos com âmbito de cluster, como
clusterIssuer, são eliminados quandooperatoré desinstalado. Reinstale-as com o seguinte comando:helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE