将配置应用于集群
要将 Apigee Hybrid 安装到您的集群中,请执行以下操作:
- 确保您位于
hybrid-base-directory/hybrid-files
目录中。 - 执行
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 可能需要几分钟时间才能启动。
在 /etc/hosts 中为 Cassandra 添加静态主机名
在此步骤中,您将获得分配给 Cassandra 的工作器节点的 IP 和主机名,并将其添加到 /etc/hosts
文件中。使用主机网络时,pod 使用节点主机名和 IP。节点主机名不在 DNS 中;因此,您必须在 /etc/hosts
中为每个 Cassandra 工作器节点添加静态主机名条目。
- 执行此命令以获取 Cassandra 工作器节点。参数
apigee-data
是分配给 Cassandra 的默认节点标签。如果您使用了其他节点标签,请替换您使用的节点标签。请参阅如何为工作器节点添加标签。kubectl get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide
输出示例:
kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME my-cluster1-844788cc8c-2gx7d Ready none 19d v1.14.7-gke.24 21.0.129.248 21.0.129.248 Ubuntu 18.04.3 LTS 4.15.0-62-generic docker://17.3.2
- 请将上一个命令为每个 Cassandra 工作器节点返回的节点名称和外部 IP 添加到您的
/etc/hosts
文件中:cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
启用同步器访问权限
- 创建一个 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 IP 添加到您的组织
您必须将 MART 端点的 IP 地址添加到您的 Apigee 组织。您之前在替换文件中设置 mart.hostAlias
属性的值时设置了此值。管理平面需要此地址,以便能够通过 MART 与运行时平面进行通信。
请按照以下步骤将 MART IP 添加到您的组织:
- 获取您之前在替换文件中为
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" } ] } }'
保存替换文件
务必保存您的替换文件。您需要使用此文件来对集群配置执行未来升级、补丁程序或任何其他修改。