将配置应用于集群
要将 Apigee Hybrid 安装到您的集群中,请执行以下操作:
- 确保您位于
hybrid-base-directory/hybrid-files
目录中。 - 验证是否将
kubectl
设置为正确的上下文。应将当前上下文设置为要部署到的集群:kubectl config get-contexts
- 执行
init
命令:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init
命令会安装 Apigee 部署服务 Apigee Deployment Controller 和 Apigee Admission Webhook,并部署非 Apigee 组件 Istio 和 Cert Manager。 - 要检查部署的状态,您可以使用以下命令:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
和
kubectl get pods -n apigee-system
和
kubectl get pods -n istio-system
Pod 准备就绪后,请转到下一步。
- 执行“试运行”安装。使用
--dry-run=true
标志执行apply
命令。通过执行试运行,可以在对集群进行任何更改之前检查是否有任何错误。$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
- 如果没有错误,您可以将 Apigee 特定运行时组件应用到集群:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 要检查部署的状态,请执行以下操作:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
重复此步骤,直到 Pod 都已准备就绪。这些 Pod 可能需要几分钟时间才能启动。
启用同步器访问权限
- 创建一个 GCP 服务账号并为其添加 Apigee Organization Admin 角色。此服务账号将用于对您将在下一步中执行的 API 调用进行身份验证。您可以通过 GCP Console 轻松创建服务账号。如需查看相关说明,请参阅 GCP 文档中的创建和管理服务账号。
- 将服务账号密钥下载到您的系统中。按照 GCP 文档中的创建服务账号密钥中的说明执行操作。
- 将下载的服务账号密钥移至您的服务账号目录:/hybrid-base-directory
/hybrid-files/service-accounts
。 - 执行以下两个命令来获取令牌:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
其中,org-admin-service-account-file 是系统中指向下载的含 Apigee Organization Admin 角色的服务账号密钥的路径。
- 调用 setSyncAuthorization API 以启用同步器所需的权限:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \ -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
其中:
your_org_name
:您的 Hybrid 组织的名称。synchronizer-manager-service-account-email
:拥有 Apigee Synchronizer Manager 角色的服务账号的名称。 该名称的格式类似于电子邮件地址。例如:apigee-synchronizer@my-project.iam.gserviceaccount.com
示例:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \ -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
- 要验证是否已设置服务账号,请调用以下 API 来获取服务账号列表:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
输出类似于以下内容:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
将 MART 主机别名添加到您的组织
您必须将 MART 端点的主机别名添加到您的 Apigee 组织。您之前在替换文件中设置 mart.hostAlias
属性的值时设置了此值。管理平面需要此地址,以便能够通过 MART 与运行时平面进行通信。
按照以下步骤将 MART 主机别名添加到您的组织:
- 获取您之前在替换文件中为
mart.hostAlias
属性设置的值。要使 MART 正常运行,主机别名必须是完全限定的域名。 - 在启用同步器访问权限部分,找到您之前下载的含 Apigee Organization Admin 角色的服务账号密钥。
- 执行以下两个命令来获取令牌:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
其中,org-admin-service-account-file 是系统中指向下载的含 Apigee Organization Admin 角色的服务账号密钥的路径。
- 调用以下管理 API 以使用 MART 端点更新您的组织:
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://HOST_ALIAS_DNS" } ] } }'
示例如下。请务必向主机别名添加前缀“https://”。
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/my_organization \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "my_organization", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://foo-mart.example.com" } ] } }'
保存替换文件
务必保存您的替换文件。您需要使用此文件来对集群配置执行未来升级、补丁程序或任何其他修改。