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.14.3 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-scheduler
conta 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.14.3 dos gráficos Helm, extraia os gráficos Helm com os seguintes comandos:
No diretório $APIGEE_HELM_CHARTS_HOME, use o comando
pull
para 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.14.3
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
- 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-account
no diretório $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Valide se consegue executar
create-service-account
. Se acabou de transferir os gráficos, o ficheirocreate-service-account
pode 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, comchmod
no Linux, MacOS ou UNIX, ou no Explorador do Windows, ou com o comandoicacls
no 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-scheduler
e armazene o ficheiro de certificado transferido no diretório do gráficoapigee-org
com 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-mart
eapigee-mint-task-scheduler
.Se ainda não ativou o acesso ao plano de controlo para as contas de serviço
apigee-mart
eapigee-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.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-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.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Valide o acesso ao plano de controlo para as contas de serviço
apigee-mart
eapigee-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-scheduler
eapigee-runtime
semelhantes 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 estrofes específicas da 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.14.3" #must be 1.14.3 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-spc
Se 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-org
eapigee-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-release
edev-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-run
para 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-org
e 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-sa]" \ --project PROJECT_ID
O 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.