ステップ 3: apigeectl をインストールする

このステップでは、AWS 管理マシンの Anthos GKE に apigeectl をダウンロードしてインストールする方法について説明します。このステップには、インストール ディレクトリの設定、ハイブリッド コンポーネントとの通信に必要な Google Cloud サービス アカウントの作成、Apigee ハイブリッドの動作に必要な TLS 認証情報の作成が含まれます。

apigeectl のダウンロードとインストール

apigeectl は、Apigee ハイブリッドを Kubernetes クラスタにインストールして管理するためのコマンドライン インターフェース(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 ハイブリッド インストールのベース ディレクトリとして機能するディレクトリを作成します。
  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 ハイブリッド リリース ソフトウェアは、作成する必要がある構成ファイルから分離されています。$APIGEECTL_HOME 変数とシンボリック リンクを使用すると、必要に応じて新しいソフトウェア バージョンに簡単に切り替えることができます。Apigee ハイブリッドのアップグレードもご覧ください。

  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 ハイブリッドでは Google Cloud サービス アカウントを使用して、承認された API 呼び出しによるハイブリッド コンポーネント間の通信が許可されます。このステップでは、Apigee ハイブリッド コマンドライン ツールを使用して、一連のサービス アカウントを作成します。また、このツールを使用して、サービス アカウントの秘密鍵もダウンロードします。次に、これらの鍵を Apigee ハイブリッド クラスタ構成ファイルに追加する必要があります。

Apigee が提供するツールである create-service-account を使用すると、1 つのコマンドでサービス アカウントを作成し、サービス アカウントにロールを割り当て、サービス アカウントの鍵ファイルを作成してダウンロードできます。関連する 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-org-admin サービス アカウントに Apigee 組織管理者ロールを割り当てます。
  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 ハイブリッド構成では、ランタイム Ingress ゲートウェイの 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 は、クイックスタート(ハイブリッド)ステップ 5: DNS を構成するでハイブリッドのインストール用に予約したドメインです。

    このコマンドは、このクイックスタートのインストールに使用できる自己署名証明書と鍵のペアを作成します。

  4. 次のコマンドを使用して、ファイルが ./certs ディレクトリにあることを確認します。
    ls ./certs
      keystore.pem
      keystore.key

    keystore.pem は自己署名 TLS 証明書ファイル、keystore.key は鍵ファイルです。

これで、Kubernetes クラスタで Apigee ハイブリッドを構成、デプロイ、管理するためのホームベースが準備されました。次に、Kubernetes がハイブリッド ランタイム コンポーネントをクラスタにデプロイするときに使用するファイルを作成します。

1 2 3 (次)ステップ 4: クラスタを構成する 5