第 5 步:安装 Hybrid 运行时

// [START common_links] // [END common_links] // [START flow_variables] // [END flow_variables] // [START main_body] // [END main_body] // [START proxy_config_ref] // [END proxy_config_ref] // [START environment_variables] // [END environment_variables] // [START tooltips] // [END tooltips] // [START apis] // [END apis]

将配置应用于集群

按照以下步骤将 Apigee Hybrid 安装到集群中:

  1. 确保您位于 hybrid-base-directory/hybrid-files 目录中。
  2. 使用以下命令验证 kubectl 是否设置为正确的上下文。当前上下文应设置为您要为其部署 Apigee Hybrid 的集群。
    kubectl config get-contexts
  3. 验证是否已设置 KUBECONFIG 变量。如尚未设置,请参阅前提条件
    echo $KUBECONFIG
  4. 执行试运行初始化。使用 --dry-run 标志执行 init 命令。通过执行试运行,可以在对集群进行任何更改之前检查是否有任何错误。

    在 Hybrid 1.3 版中,--dry-run 标志的语法取决于您运行的 kubectl 的版本。使用以下命令检查 kubectl 的版本:

    gcloud 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
  5. 如果没有出现错误,请执行 init 命令,如下所示:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    init 命令会安装 Apigee 部署服务 Apigee Deployment Controller 和 Apigee Admission Webhook。

  6. 如需检查部署的状态,您可以使用以下命令:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    Pod 准备就绪后,请转到下一步。

  7. 运行 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
  8. 如果没有出现错误,则您可以使用以下命令将 Apigee 专用运行时组件应用于集群:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  9. 要查看部署的状态,请运行以下命令:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    重复此步骤,直到 Pod 都已准备就绪。 这些 Pod 可能需要几分钟时间才能启动。

启用同步器访问权限

要启用 Syncer Access,请执行以下操作:

  1. 确保您位于 /hybrid-base-directory/hybrid-files/ 目录中。
  2. 验证 Apigee Org Admin 服务帐号密钥的路径。此帐号是您在第 3 步:安装 apigeectl 中创建的帐号。使用以下命令:
    ls service-accounts/*admin*

    结果应该类似如下所示:

    service-accounts/hybrid-example-2-apigee-org-admin.json
  3. 使用密钥文件的名称创建 ORG_ADMIN_ACCOUNT 环境变量。例如:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  4. 执行以下命令以获取令牌:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  5. 使用以下命令获取 apigee-synchronizer 服务帐号的电子邮件地址:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    如果它与模式 apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com 匹配,您可以在下一步中使用该模式。

  6. 调用 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 服务帐号的电子邮件地址。
  7. 要验证服务帐号是否已设置,请使用以下命令调用 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 Connect

Apigee Connect 会在运行时平面管理 Apigee 管理平面与 MART 之间的通信。如需了解详情,请参阅使用 Apigee Connect

要启用 Apigee Connect,请执行以下步骤:

  1. 在命令行中,获取 gcloud 身份验证凭据,如以下示例所示:

    TOKEN=$(gcloud auth print-access-token)

    如需检查是否已填充令牌,请使用 echo,如以下示例所示:

    echo $TOKEN

    这应该会以编码字符串的形式显示令牌。

    如需了解详情,请参阅 gcloud 命令行工具概览

  2. 使用以下命令查看您的组织是否已启用 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 已启用,且您可以跳过本部分的其余内容。

  3. 使用以下命令启用 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"
    }