第 3 步:安装 apigeectl

此步骤介绍如何在部署了 Anthos GKE 的本地管理机上下载并安装 apigeectl。步骤包括设置安装目录,创建 Hybrid 组件通信所需的 Google Cloud 服务账号,以及创建 Apigee Hybrid 运行所需的 TLS 凭据。

下载并安装 apigeectl

apigeectl 是用于在 Kubernetes 集群中安装和管理 Apigee Hybrid 的命令行界面 (CLI)。

以下步骤介绍了如何获取 apigeectl

  1. 使用以下命令将最新版本号存储在变量中:
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. 使用以下命令检查该变量是否已填充版本号。如果要使用其他版本,您可以改为将其保存在环境变量中。
    echo $VERSION
  3. 使用以下命令下载适用于您的操作系统的软件包版本:

    Mac 64 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz

    Linux 64 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz

    Mac 32 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    Linux 32 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. 在您的系统上创建一个目录,作为 Apigee Hybrid 安装的基本目录
  5. 使用以下命令将下载的 gzip 文件内容解压缩到您刚创建的基本目录中:

    tar xvzf filename.tar.gz -C path-to-base-directory
  6. 使用 cd 命令将目录更改为基本目录。
  7. 默认情况下,tar 内容会扩展到其名称中包含版本和平台的目录。例如:./apigeectl_1.0.0-f7b96a8_linux_64。使用以下命令将该目录重命名为 apigeectl

    mv apigeectl_1.0.0-f7b96a8_linux_64 apigeectl
  8. 使用以下命令切换到该目录:
    cd ./apigeectl

    此目录是 apigeectl 主目录。它是 apigeectl 可执行命令所在的位置。

  9. 使用以下命令创建一个环境变量来保存此主目录路径:
    export APIGEECTL_HOME=$PWD
  10. 使用以下命令验证该变量是否保存了正确的路径:
    echo $APIGEECTL_HOME

设置项目目录结构

建议使用以下目录结构。它将 Apigee Hybrid 版本软件与您必须创建的配置文件分开。通过使用 $APIGEECTL_HOME 变量和您创建的符号链接,您可以根据需要轻松切换到新的软件版本。另请参阅升级 Apigee Hybrid

  1. 使用以下命令确保您位于基本目录(apigeectl 目录所在的目录)中:
    cd $APIGEECTL_HOME/..
  2. 使用以下命令创建名为 hybrid-files 的新文件夹。您可为目录指定所需的任意名称,但文档中将始终使用名称 hybrid-files。稍后,您需要将配置文件、服务账号密钥和 TLS 证书存储在此文件夹中。此文件夹可让您将配置文件与 apigeectl 软件安装分开。
    mkdir hybrid-files
  3. 当前目录结构现在如下所示:
    pwd && ls
    /hybrid-base-directory
      apigeectl
      hybrid-files
  4. 使用以下命令将目录切换到 hybrid-files 文件夹:
    cd hybrid-files
  5. hybrid-files 目录中,创建以下子目录来组织将稍后创建的文件:
    mkdir overrides
    mkdir service-accounts
    mkdir certs
  6. hybrid-files 目录中,创建以下指向 $APIGEECTL_HOME 的符号链接。这些链接可让您从 hybrid-files 目录运行 apigeectl 命令,如以下示例所示:
    ln -s $APIGEECTL_HOME/tools tools
    ln -s $APIGEECTL_HOME/config config
    ln -s $APIGEECTL_HOME/templates templates
    ln -s $APIGEECTL_HOME/plugins plugins
  7. 要检查符号链接是否正确创建,请执行以下命令,并确保链接路径指向正确的位置:
    ls -l | grep ^l

创建服务账号

Apigee Hybrid 使用 Google Cloud 服务账号来允许 Hybrid 组件通过授权的 API 调用进行通信。在此步骤中,您将使用 Apigee Hybrid 命令行工具创建一组服务账号。该工具还会为您下载服务账号私钥。然后,您必须将这些密钥添加到您的 Apigee Hybrid 集群配置文件中。

Apigee 提供了一个工具 create-service-account,可在一个命令中创建服务账号、将角色分配给服务账号以及创建和下载服务账号的密钥文件。如需了解相关的 Google Cloud 概念,请参阅创建和管理服务账号以及创建和管理服务账号密钥

  1. 确保您位于在设置项目目录结构中配置的 base_directory/hybrid-files 目录中。
  2. hybrid-files 目录内执行以下命令。以下命令会为 apigee-metrics 组件创建服务账号,并将下载的密钥放在 ./service-accounts 目录中。
    ./tools/create-service-account apigee-metrics ./service-accounts

    当您看到以下提示时,请输入 y

    [INFO]: gcloud configured project ID is project_id.
     Press: y to proceed with creating service account in project: project_id
     Press: n to abort.

    如果这是首次创建具有该工具分配的确切名称的 SA,该工具会创建该服务账号,您无需执行任何其他操作。

    但是,如果您看到以下消息和提示,请输入 y 以生成新的密钥:

    [INFO]: Service account apigee-metrics@project_id.iam.gserviceaccount.com already exists.
    ...
     [INFO]: The service account might have keys associated with it. It is recommended to use existing keys.
     Press: y to generate new keys.(this does not de-activate existing keys)
     Press: n to skip generating new keys.
    
  3. 现在,使用以下命令创建其余的服务账号。create-service-account 命令是交互式的,并且需要获得针对每个账号的响应。
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts
    ./tools/create-service-account apigee-watcher ./service-accounts
  4. 使用以下命令验证服务账号密钥已创建。您需要确保安全地存储这些私钥。密钥文件名以您的 Google Cloud 项目的名称为前缀。
    ls ./service-accounts

    结果应该类似如下所示:

    gcp-project-id-apigee-cassandra.json
    gcp-project-id-apigee-logger.json
    gcp-project-id-apigee-mart.json
    gcp-project-id-apigee-metrics.json
    gcp-project-id-apigee-synchronizer.json
    gcp-project-id-apigee-udca.json
    gcp-project-id-apigee-watcher.json
  5. 将 Apigee Organization Admin 角色分配给 apigee-org-admin 服务账号:
  6. 验证 apigee-org-admin 服务账号的电子邮件地址遵循格式 service_account@PROJECT_ID.iam.gserviceaccount.com,如以下示例所示:
    gcloud iam service-accounts list --filter "apigee-org-admin"
  7. 使用以下命令分配角色:
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com --role roles/apigee.admin

    其中,PROJECT_ID 是您的 Google Cloud 项目。如果您的服务账号电子邮件地址与此模式不同,请相应地替换电子邮件地址。

    输出应包括所有服务账户及其角色的列表,包括以下内容:

    - members:
      - serviceAccount:apigee-org-admin@hybrid-example-2.iam.gserviceaccount.com
      role: roles/apigee.admin

创建 TLS 证书

您必须在 Apigee Hybrid 配置中为运行时入站网关提供 TLS 证书。在本快速入门(非生产的试用版安装)中,运行时网关可以接受自签名凭据。在以下步骤中,openssl 用于生成自签名凭据。

在此步骤中,您将创建 TLS 凭据文件并将其添加到 base_directory/hybrid-files/certs 目录。在第 4 步:配置集群中,您将把文件路径添加到集群配置文件。

  1. 确保您位于在设置项目目录结构中配置的 base_directory/hybrid-files 目录中。
  2. 使用以下命令,确保将您的域名保存到 DOMAIN 环境变量中:
    echo $DOMAIN
  3. hybrid-files 目录内执行以下命令:
    openssl req  -nodes -new -x509 -keyout ./certs/keystore.key -out \
        ./certs/keystore.pem -subj '/CN='$DOMAIN'' -days 3650

    其中,DOMAIN 是您在快速入门 (Hybrid) 第 5 步:配置 DNS 中为 Hybrid 安装预留的网域。

    此命令会创建一个可用于快速入门安装的自签名证书/密钥对。

  4. 使用以下命令检查文件是否在 ./certs 目录中:
    ls ./certs
      keystore.pem
      keystore.key

    其中,keystore.pem 是自签名 TLS 证书文件,keystore.key 是密钥文件。

现在,您已经拥有了一个可供您在 Kubernetes 集群中配置、部署和管理 Apigee Hybrid 的统一平台。接下来,您将创建一个文件,Kubernetes 将使用该文件将 Hybrid 运行时组件部署到集群。

1 2 3 (下一步)第 4 步:配置集群 5