Vista geral
Este documento descreve os procedimentos para ativar taxas recorrentes, de recarga e de configuração para a funcionalidade de rentabilização do Apigee em organizações híbridas.
Pré-requisitos
- Versão 1.15.1 ou superior do Apigee Hybrid. Consulte o artigo Atualizar o Apigee hybrid para ver instruções de atualização.
- Rentabilização ativada para o seu projeto do Apigee Hybrid. Consulte o artigo Ativar a rentabilização do Apigee.
Procedimento
A ativação de taxas recorrentes, de recarga e de configuração para a rentabilização híbrida do Apigee requer a criação e a configuração da apigee-mint-task-schedulerconta de serviço Google e a concessão de acesso à pipeline de dados do Pub/Sub.
- Se ainda não transferiu a versão 1.15.1 dos gráficos Helm, extraia os gráficos Helm com os seguintes comandos:
No diretório $APIGEE_HELM_CHARTS_HOME, use o comando
pullpara copiar todos os gráficos Helm do Apigee hybrid para o seu armazenamento local:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.15.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 - Crie a conta de serviço
apigee-mint-task-scheduler.Se ainda não tiver criado a conta de serviço
apigee-mint-task-scheduler, crie-a agora com a ferramentacreate-service-account. Consulte o Passo 4: crie contas de serviço para obter informações sobre como criar contas de serviço como parte de uma nova instalação híbrida.-
Localize a ferramenta
create-service-accountno diretório $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-accountValide 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_HELM_CHARTS_HOME/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_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Crie a conta de serviço
apigee-mint-task-schedulere armazene o ficheiro de certificado transferido no diretório do gráficoapigee-orgcom o seguinte comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
-
Localize a ferramenta
- Ative o acesso ao plano de controlo para as contas de serviço
apigee-marteapigee-mint-task-scheduler.Se ainda não ativou o acesso ao plano de controlo para as contas de serviço
apigee-marteapigee-mint-task-scheduler, faça-o agora com os seguintes passos. Consulte o Passo 7: ative o acesso ao plano de controlo para ver informações sobre a ativação do acesso ao plano de controlo como parte de uma nova instalação híbrida.- Se não for o proprietário do projeto do Google Cloud associado à sua organização híbrida do Apigee, certifique-se de que a sua conta de utilizador do Google Cloud tem a função roles/apigee.admin (administrador da organização do Apigee). Pode verificar as funções que lhe foram atribuídas com este comando:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"Se o resultado não incluir roles/apigee.admin, consulte o Passo 7: ative o acesso ao plano de controlo para ver os passos para adicionar a função ou pedir a um utilizador que tenha a função para executar este passo.
- Chame a API
updateControlPlaneAccess
para ativar as autorizações necessárias através do seguinte comando:
Sem residência de dados
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"Em que os seguintes são os endereços de email das contas de serviço:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Residência dos dados
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"Onde:
CONTROL_PLANE_LOCATIONé a localização dos dados do plano de controlo se a sua instalação híbrida usar a residência de dados. Esta é a localização onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para ver uma lista, consulte o artigo Regiões do plano de controlo da API Apigee disponíveis.- Seguem-se os endereços de email das contas de serviço:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Valide o acesso ao plano de controlo para as contas de serviço
apigee-marteapigee-mint-task-scheduler.Sem residência de dados
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
Residência dos dados
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
O resultado deve incluir as contas de serviço
apigee-mart,apigee-mint-task-schedulereapigee-runtimesemelhantes ao seguinte:{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com" ] }
- Se não for o proprietário do projeto do Google Cloud associado à sua organização híbrida do Apigee, certifique-se de que a sua conta de utilizador do Google Cloud tem a função roles/apigee.admin (administrador da organização do Apigee). Pode verificar as funções que lhe foram atribuídas com este comando:
- Adicione as cláusulas específicas de rentabilização ao seu ficheiro
overrides.yaml.Adicione as seguintes estrofes ao ficheiro
overrides.yaml:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.15.1" #must be 1.15.1 or higher. mintTaskScheduler: # if using stored SA cert files: serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json # if using stored Kubernetes secrets: serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET # if using Workload Identity on GKE: gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com" # or if using Vault: serviceAccountSecretProviderClass: apigee-orgsakeys-spcSe estiver a usar segredos do Kubernetes, consulte o artigo Armazenar dados num segredo do Kubernetes.
Se estiver a usar o Vault, consulte o artigo Armazenar chaves de contas de serviço no Hashicorp Vault.
Se estiver a usar o Vault, certifique-se de que adicionou
mintà classe de fornecedor de segredos específica da organização. Consulte o artigo Crie objetosSecretProviderClass. -
Aplique as alterações aos gráficos
apigee-operator,apigee-orgeapigee-env.Se tiver definido as variáveis de ambiente $ORG_NAME e APIGEE_NAMESPACE, pode usá-las nos seguintes comandos:
- Instale o operador.
Execução de ensaio:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instale o gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instale a organização do Apigee.
Execução de ensaio:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instale o gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instale o ambiente. Repita este passo para cada ambiente.
Tem de instalar um ambiente de cada vez. Especifique o ambiente com
--set env=ENV_NAME. Se tiver definido a variável de ambiente $ENV_NAME na sua shell, pode usá-la nos seguintes comandos:Execução de ensaio:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --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 o artigo Três grandes conceitos na documentação do Helm.Instale o gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Instale o operador.
- Apenas Workload Identity no GKE: configure o Workload Identity para a conta de serviço
apigee-mint-task-scheduler.Se estiver a fazer uma instalação nova, execute este passo além dos passos no Passo 11 (opcional): configure a identidade da carga de trabalho.
Quando executa a atualização do Helm com a flag
--dry-runpara o gráficoapigee-org, o resultado inclui os comandos necessários para configurar a identidade de carga de trabalho com os nomes corretos da conta de serviço Google e da conta de serviço Kubernetes.- Obtenha os comandos para configurar a identidade da carga de trabalho para
apigee-orge execute o comando emNOTES:na saída.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
O resultado deve conter instruções semelhantes às seguintes em
NOTES::NOTES: ... For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID]" \ --project PROJECT_IDO nome da conta de serviço do Kubernetes tem o formato
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID. - Execute os comandos para configurar o Workload Identity para
apigee-mint-task-scheduler.
- Obtenha os comandos para configurar a identidade da carga de trabalho para
Veja também
- Ativar a rentabilização do Apigee para mais informações sobre a rentabilização no Apigee.
mintTaskScheduler.serviceAccountPath: define o caminho para o ficheiro de chave da conta de serviço para a conta de serviçoapigee-mint-task-scheduler.mintTaskScheduler.serviceAccountRef: define o segredo do Kubernetes que contém a chave da conta de serviço para a conta de serviçoapigee-mint-task-scheduler.mintTaskScheduler.gsa: define a conta de serviço Google para a conta de serviçoapigee-mint-task-scheduler. Tem de ser o endereço de email da conta de serviço.