启用同步器访问权限
要启用 Syncer Access,请执行以下操作:
- 创建一个 Google Cloud 服务账号并为其添加 Apigee Organization Admin 角色。此服务账号将用于对您将在下一步中执行的 API 调用进行身份验证。您可以通过 GCP Console 轻松创建服务账号。如需查看相关说明,请参阅 GCP 文档中的创建和管理服务账号。
例如,以下
gcloud
命令会创建服务账号并为其分配 Apigee Organization Admin 角色:- 创建账号:
gcloud iam service-accounts create apigee-org-admin \ --display-name="apigee-org-admin"
其中 apigee-org-admin 是您正在创建的服务账号的名称。本教程建议使用“
apigee-org-admin
”。 - 将 Apigee Org Admin 角色分配给服务账号:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.admin"
其中:
- $PROJECT_ID 是您在第 2 步:创建 Google Cloud 项目中创建的 Google Cloud 项目名称。
- apigee-org-admin 是您刚刚创建的服务账号的名称。
- roles/apigee.admin 是 Apigee Org Admin 角色。
- 创建账号:
- 将服务账号密钥下载到您的系统中。使用以下命令将密钥下载到
service-accounts/
目录。如需了解详情,请参阅 GCP 文档中的创建服务账号密钥中的说明。- 确保您位于
/hybrid-base-directory/hybrid-files/
目录中。 - 下载密钥:
gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \ --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com
输出应如下所示:
created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid- example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com] $
- 确保您位于
- 使用以下命令验证 Apigee Org Admin 服务账号密钥的路径:
ls service-accounts/*admin*
结果应该类似如下所示:
service-accounts/hybrid-example-apigee-org-admin.json
- 使用密钥文件的名称创建 ORG_ADMIN_ACCOUNT 环境变量。例如:
export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
- 执行以下命令以获取令牌:
export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
export TOKEN=$(gcloud auth application-default print-access-token)
- 使用以下命令获取
apigee-synchronizer
服务账号的电子邮件地址:gcloud iam service-accounts list --filter "apigee-synchronizer"
如果它与模式
apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
匹配,您可以在下一步中使用该模式。 - 使用以下命令调用 setSyncAuthorization API 以启用 Synchronizer 所需的权限:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
其中:
$ORG_NAME
:您的混合组织的名称。apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
:apigee-syncnronizer 服务账号的电子邮件地址。
- 如需验证服务账号是否已设置,请使用以下命令调用 API 以获取服务账号列表:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \ -d ''
输出类似于以下内容:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
将配置应用于集群
按照以下步骤将 Apigee Hybrid 安装到集群中:
- 确保您位于
hybrid-base-directory/hybrid-files
目录中。 - 使用以下命令验证
kubectl
是否设置为正确的上下文。当前上下文应设置为您要为其部署 Apigee Hybrid 的集群。kubectl config get-contexts
- 执行试运行初始化。使用
--dry-run
标志执行init
命令。通过执行试运行,可以在对集群进行任何更改之前检查是否有任何错误。在 Hybrid 1.3 版中,
--dry-run
标志的语法取决于您运行的kubectl
的版本。使用以下命令检查kubectl
的版本:kubectl version
kubectl
1.17 版及更早版本:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true
kubectl
1.18 版及更高版本:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
- 如果没有出现错误,请执行
init
命令,如下所示:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init
命令会安装 Apigee 部署服务 Apigee Deployment Controller 和 Apigee Admission Webhook。 - 如需检查部署的状态,您可以使用以下命令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n istio-system
Pod 准备就绪后,请转到下一步。
- 运行 dry run 安装。使用
--dry-run
标志执行apply
命令。kubectl
1.17 版及更早版本:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
kubectl
1.18 版及更高版本:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
-
如果没有出现错误,您可以使用以下命令将特定于 Apigee 的运行时组件应用于集群:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 如需检查部署的状态,请运行以下命令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
重复此步骤,直到 Pod 都已准备就绪。 这些 Pod 可能需要几分钟时间才能启动。
启用 Apigee Connect
Apigee Connect 会在运行时平面管理 Apigee 管理平面与 MART 之间的通信。如需了解详情,请参阅使用 Apigee Connect。
要启用 Apigee Connect,请执行以下步骤:
-
在命令行中,获取
gcloud
身份验证凭据,如以下示例所示:TOKEN=$(gcloud auth print-access-token)
如需检查是否已填充令牌,请使用
echo
,如以下示例所示:echo $TOKEN
这应该会以编码字符串的形式显示令牌。
如需了解详情,请参阅 gcloud 命令行工具概览。
- 使用以下命令查看您的组织是否已启用 Apigee Connect。
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
其中 $ORG_NAME 是您的组织的 ID。
如果输出包含以下内容:
"name" : "features.mart.connect.enabled", "value" : "true"
Apigee Connect 已启用,且您可以跳过本部分的其余内容。
- 使用以下命令启用 Apigee Connect:
curl -H "Authorization: Bearer $TOKEN" -X PUT \ -H "Content-Type: application/json" \ -d '{ "name" : "'"$ORG_NAME"'", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
如果输出包含以下属性,则表示 Apigee Connect 已成功启用:
{ "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" }
输出内容应如下所示:
{ "name": "hybrid-example-2", "createdAt": "1594409699772", "lastModifiedAt": "1594776283697", "environments": [ "example-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "analyticsRegion": "us-central1", "runtimeType": "HYBRID", "subscriptionType": "TRIAL" }