第 3 步:安装 apigeectl

此步骤介绍了如何在 AWS 管理机的 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